From 6b87af03cd779097f09a5dfc5f69afd0af1e75e7 Mon Sep 17 00:00:00 2001 From: Miguel Angel Ajo Date: Thu, 11 Oct 2018 12:22:34 +0200 Subject: [PATCH] Add functional test for var log messages and enhance functional script This test adds testing for var log messages format. In this commit we also enhance the functional.sh script to: 1) make sed usage more compatible with other systems (--expression -> -e) 2) Add color to output PASSED / FAILED 3) Generate template files for non existing outputs 4) Generate failed outputs for manual verification Change-Id: I1146b96fe9c91473c0127d0c47f890db1ddfb7b5 --- .../data/02-var-log-messages/in/nova-api.log | 9 ++++++ .../02-var-log-messages/in/var_log_messages | 9 ++++++ .../in/var_log_messages_ms | 9 ++++++ .../data/02-var-log-messages/out/mixed.log | 18 ++++++++++++ .../data/02-var-log-messages/out/mixed_ms.log | 27 +++++++++++++++++ oslogmerger/tests/functional/functional.sh | 29 ++++++++++++++++--- 6 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 oslogmerger/tests/functional/data/02-var-log-messages/in/nova-api.log create mode 100644 oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages create mode 100644 oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages_ms create mode 100644 oslogmerger/tests/functional/data/02-var-log-messages/out/mixed.log create mode 100644 oslogmerger/tests/functional/data/02-var-log-messages/out/mixed_ms.log diff --git a/oslogmerger/tests/functional/data/02-var-log-messages/in/nova-api.log b/oslogmerger/tests/functional/data/02-var-log-messages/in/nova-api.log new file mode 100644 index 0000000..9c52dcd --- /dev/null +++ b/oslogmerger/tests/functional/data/02-var-log-messages/in/nova-api.log @@ -0,0 +1,9 @@ +2018-10-11 08:00:49.397 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.13 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.001817 +2018-10-11 08:00:50.902 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.4 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000306 + multiline part 1 + multiline part 2 +2018-10-11 08:00:51.091 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.29 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000300 + more multiline +and more multiline... +2018-10-11 08:00:51.404 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.13 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000322 +2018-10-11 08:00:52.923 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.4 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000312 \ No newline at end of file diff --git a/oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages b/oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages new file mode 100644 index 0000000..ef081b1 --- /dev/null +++ b/oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages @@ -0,0 +1,9 @@ +Oct 11 07:49:20 overcloud-controller-1 systemd: Starting Serial Getty on ttyS0... +Oct 11 07:49:20 overcloud-controller-1 systemd: Reached target Login Prompts. +Oct 11 07:49:20 overcloud-controller-1 systemd: Starting Login Prompts. +Oct 11 07:49:21 overcloud-controller-1 kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team +Oct 11 07:49:21 overcloud-controller-1 sshd-keygen: Generating SSH2 RSA host key: [ OK ] +Oct 11 08:00:50 overcloud-controller-1 test: entry 2 +Oct 11 08:00:51 overcloud-controller-1 test: entry 3 +Oct 11 08:00:52 overcloud-controller-1 test: entry 4 +Oct 11 08:00:53 overcloud-controller-1 test: entry 5 diff --git a/oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages_ms b/oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages_ms new file mode 100644 index 0000000..c94587b --- /dev/null +++ b/oslogmerger/tests/functional/data/02-var-log-messages/in/var_log_messages_ms @@ -0,0 +1,9 @@ +Oct 11 07:49:20.347281 overcloud-controller-1 test: ms 1 +Oct 11 07:49:20.575312 overcloud-controller-1 test: ms 2 +Oct 11 07:49:20.986673 overcloud-controller-1 test: ms 3 +Oct 11 07:49:21.296738 overcloud-controller-1 test: ms 4 +Oct 11 07:49:21.583617 overcloud-controller-1 test: ms 5 +Oct 11 08:00:50.193729 overcloud-controller-1 test: ms 6 +Oct 11 08:00:51.017367 overcloud-controller-1 test: ms 7 +Oct 11 08:00:52.373661 overcloud-controller-1 test: ms 8 +Oct 11 08:00:53.293771 overcloud-controller-1 test: ms 9 diff --git a/oslogmerger/tests/functional/data/02-var-log-messages/out/mixed.log b/oslogmerger/tests/functional/data/02-var-log-messages/out/mixed.log new file mode 100644 index 0000000..d635bcf --- /dev/null +++ b/oslogmerger/tests/functional/data/02-var-log-messages/out/mixed.log @@ -0,0 +1,18 @@ +Oct 11 07:49:20 [messages] overcloud-controller-1 systemd: Starting Serial Getty on ttyS0... +Oct 11 07:49:20 [messages] overcloud-controller-1 systemd: Reached target Login Prompts. +Oct 11 07:49:20 [messages] overcloud-controller-1 systemd: Starting Login Prompts. +Oct 11 07:49:21 [messages] overcloud-controller-1 kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team +Oct 11 07:49:21 [messages] overcloud-controller-1 sshd-keygen: Generating SSH2 RSA host key: [ OK ] +2018-10-11 08:00:49.397 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.13 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.001817 +Oct 11 08:00:50 [messages] overcloud-controller-1 test: entry 2 +2018-10-11 08:00:50.902 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.4 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000306 + multiline part 1 + multiline part 2 +Oct 11 08:00:51 [messages] overcloud-controller-1 test: entry 3 +2018-10-11 08:00:51.091 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.29 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000300 + more multiline + and more multiline... +2018-10-11 08:00:51.404 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.13 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000322 +Oct 11 08:00:52 [messages] overcloud-controller-1 test: entry 4 +2018-10-11 08:00:52.923 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.4 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000312 +Oct 11 08:00:53 [messages] overcloud-controller-1 test: entry 5 diff --git a/oslogmerger/tests/functional/data/02-var-log-messages/out/mixed_ms.log b/oslogmerger/tests/functional/data/02-var-log-messages/out/mixed_ms.log new file mode 100644 index 0000000..56893b0 --- /dev/null +++ b/oslogmerger/tests/functional/data/02-var-log-messages/out/mixed_ms.log @@ -0,0 +1,27 @@ +Oct 11 07:49:20 [messages] overcloud-controller-1 systemd: Starting Serial Getty on ttyS0... +Oct 11 07:49:20 [messages] overcloud-controller-1 systemd: Reached target Login Prompts. +Oct 11 07:49:20 [messages] overcloud-controller-1 systemd: Starting Login Prompts. +Oct 11 07:49:20.347281 [messages2] overcloud-controller-1 test: ms 1 +Oct 11 07:49:20.575312 [messages2] overcloud-controller-1 test: ms 2 +Oct 11 07:49:20.986673 [messages2] overcloud-controller-1 test: ms 3 +Oct 11 07:49:21 [messages] overcloud-controller-1 kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team +Oct 11 07:49:21 [messages] overcloud-controller-1 sshd-keygen: Generating SSH2 RSA host key: [ OK ] +Oct 11 07:49:21.296738 [messages2] overcloud-controller-1 test: ms 4 +Oct 11 07:49:21.583617 [messages2] overcloud-controller-1 test: ms 5 +2018-10-11 08:00:49.397 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.13 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.001817 +Oct 11 08:00:50 [messages] overcloud-controller-1 test: entry 2 +Oct 11 08:00:50.193729 [messages2] overcloud-controller-1 test: ms 6 +2018-10-11 08:00:50.902 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.4 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000306 + multiline part 1 + multiline part 2 +Oct 11 08:00:51 [messages] overcloud-controller-1 test: entry 3 +Oct 11 08:00:51.017367 [messages2] overcloud-controller-1 test: ms 7 +2018-10-11 08:00:51.091 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.29 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000300 + more multiline + and more multiline... +2018-10-11 08:00:51.404 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.13 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000322 +Oct 11 08:00:52 [messages] overcloud-controller-1 test: entry 4 +Oct 11 08:00:52.373661 [messages2] overcloud-controller-1 test: ms 8 +2018-10-11 08:00:52.923 [napi] 16 INFO nova.api.openstack.requestlog [req-53208dc7-ecfa-4513-ab32-45dfbca11606 da7b75a2835b4ac4b96601359670a922 83d7d5557c61458b8f95322d95305a41 - default default] 172.16.2.4 "OPTIONS /" status: 200 len: 431 microversion: - time: 0.000312 +Oct 11 08:00:53 [messages] overcloud-controller-1 test: entry 5 +Oct 11 08:00:53.293771 [messages2] overcloud-controller-1 test: ms 9 diff --git a/oslogmerger/tests/functional/functional.sh b/oslogmerger/tests/functional/functional.sh index fd7e02b..779cc42 100644 --- a/oslogmerger/tests/functional/functional.sh +++ b/oslogmerger/tests/functional/functional.sh @@ -1,9 +1,15 @@ #!/bin/sh +RED='\033[0;31m' +GREEN='\033[0;32m' +NC='\033[0m' + DATA=oslogmerger/tests/functional/data fail_func() { - echo FAILED test case $1 with output file $2 + echo ${RED}FAILED${NC} test case $1 with output file $2 + cp $3/out.log $4/$2.failed_output + echo $4/$2.failed_output created as reference rm -rf $3 exit 1 } @@ -19,14 +25,23 @@ run_test() { shift 2 # replace TDATA with the "in" directory for the test - PARAMS=$(echo $* | sed --expression=s%TDATA%${IN}%g) + PARAMS=$(echo $* | sed -e s%TDATA%${IN}%g) # run os-log-merger capturing the output, then compare to what we expected os-log-merger $PARAMS >$TMP/out.log - diff -u $OUT/$OUT_FILE $TMP/out.log || fail_func $TEST $OUT_FILE $TMP + if [ ! -f $OUT/$OUT_FILE ]; then + echo $RED + echo output file $OUT/$OUT_FILE does not exist, creating an example file: + echo ${OUT}/${OUT_FILE}.sample + echo $NC + cp $TMP/out.log ${OUT}/${OUT_FILE}.sample + fail_func $TEST $OUT_FILE $TMP + fi - echo PASSED test case $TEST / $OUT_FILE + diff -u $OUT/$OUT_FILE $TMP/out.log || fail_func $TEST $OUT_FILE $TMP $OUT + + echo ${GREEN}PASSED${NC} test case $TEST / $OUT_FILE rm -rf $TMP } @@ -34,6 +49,12 @@ run_test() { run_test 01-simple no-alias.log TDATA/metadata-agent.log TDATA/l3-agent.log run_test 01-simple alias.log TDATA/metadata-agent.log:META TDATA/l3-agent.log:L3 +run_test 02-var-log-messages mixed.log TDATA/var_log_messages:messages \ + TDATA/nova-api.log:napi +run_test 02-var-log-messages mixed_ms.log TDATA/var_log_messages:messages \ + TDATA/var_log_messages_ms:messages2 \ + TDATA/nova-api.log:napi +