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
This commit is contained in:
Miguel Angel Ajo 2018-10-11 12:22:34 +02:00 committed by Miguel Angel Ajo
parent 222bb2a984
commit 6b87af03cd
6 changed files with 97 additions and 4 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,9 +1,15 @@
#!/bin/sh #!/bin/sh
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
DATA=oslogmerger/tests/functional/data DATA=oslogmerger/tests/functional/data
fail_func() { 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 rm -rf $3
exit 1 exit 1
} }
@ -19,14 +25,23 @@ run_test() {
shift 2 shift 2
# replace TDATA with the "in" directory for the test # 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 # run os-log-merger capturing the output, then compare to what we expected
os-log-merger $PARAMS >$TMP/out.log 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 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 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 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