From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Wang Mingyu Date: Tue, 4 Sep 2018 04:32:42 -0700 Message-ID: <1536060763-33642-7-git-send-email-wangmy@cn.fujitsu.com> In-Reply-To: <1536060763-33642-1-git-send-email-wangmy@cn.fujitsu.com> References: <1536060763-33642-1-git-send-email-wangmy@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Fuego] [PATCH] logrotate: Add test cases for command logrotate. List-Id: Mailing list for the Fuego test framework List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: fuego@lists.linuxfoundation.org Signed-off-by: Wang Mingyu --- engine/tests/Functional.logrotate/datas/test.conf | 8 ++++ engine/tests/Functional.logrotate/datas/testlog.sh | 6 +++ .../tests/Functional.logrotate/datas/testlog100k | Bin 0 -> 105984 bytes engine/tests/Functional.logrotate/fuego_test.sh | 19 +++++++++ .../tests/Functional.logrotate/logrotate_test.sh | 4 ++ engine/tests/Functional.logrotate/parser.py | 22 +++++++++++ engine/tests/Functional.logrotate/spec.json | 7 ++++ .../Functional.logrotate/tests/logrotate_01.sh | 13 +++++++ .../Functional.logrotate/tests/logrotate_02.sh | 23 +++++++++++ .../Functional.logrotate/tests/logrotate_03.sh | 19 +++++++++ .../Functional.logrotate/tests/logrotate_04.sh | 43 +++++++++++++++++++++ .../Functional.logrotate/tests/logrotate_05.sh | 30 ++++++++++++++ 12 files changed, 194 insertions(+) create mode 100644 engine/tests/Functional.logrotate/datas/test.conf create mode 100644 engine/tests/Functional.logrotate/datas/testlog.sh create mode 100644 engine/tests/Functional.logrotate/datas/testlog100k create mode 100644 engine/tests/Functional.logrotate/fuego_test.sh create mode 100644 engine/tests/Functional.logrotate/logrotate_test.sh create mode 100644 engine/tests/Functional.logrotate/parser.py create mode 100644 engine/tests/Functional.logrotate/spec.json create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_01.sh create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_02.sh create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_03.sh create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_04.sh create mode 100644 engine/tests/Functional.logrotate/tests/logrotate_05.sh diff --git a/engine/tests/Functional.logrotate/datas/test.conf b/engine/tests/Functional.logrotate/datas/test.conf new file mode 100644 index 0000000..a346adf --- /dev/null +++ b/engine/tests/Functional.logrotate/datas/test.conf @@ -0,0 +1,8 @@ +/var/log/testlog { + create 600 root root + ifempty + daily + nocompress + missingok + rotate 1 +} diff --git a/engine/tests/Functional.logrotate/datas/testlog.sh b/engine/tests/Functional.logrotate/datas/testlog.sh new file mode 100644 index 0000000..e258480 --- /dev/null +++ b/engine/tests/Functional.logrotate/datas/testlog.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +ddch=`date --date ' 1 days ago' '+%Y-%m-%d'` +echo "logrotate state -- version 2" >> /var/lib/logrotate.status +echo "\"/var/log/testlog\" $ddch" >> /var/lib/logrotate.status +EOF diff --git a/engine/tests/Functional.logrotate/datas/testlog100k b/engine/tests/Functional.logrotate/datas/testlog100k new file mode 100644 index 0000000000000000000000000000000000000000..1dc679f54731568a9cbda775a663b7ea51595fe3 GIT binary patch literal 105984 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 literal 0 HcmV?d00001 diff --git a/engine/tests/Functional.logrotate/fuego_test.sh b/engine/tests/Functional.logrotate/fuego_test.sh new file mode 100644 index 0000000..f9fb429 --- /dev/null +++ b/engine/tests/Functional.logrotate/fuego_test.sh @@ -0,0 +1,19 @@ +function test_pre_check { + is_on_target_path logrotate PROGRAM_LOGROTATE + assert_define PROGRAM_LOGROTATE "Missing 'logrotate' program on target board" +} + +function test_deploy { + put $TEST_HOME/logrotate_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/ + put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/ + put -r $TEST_HOME/datas $BOARD_TESTDIR/fuego.$TESTDIR/ +} + +function test_run { + report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\ + sh -v logrotate_test.sh" +} + +function test_processing { + log_compare "$TESTDIR" "0" "TEST-FAIL" "n" +} diff --git a/engine/tests/Functional.logrotate/logrotate_test.sh b/engine/tests/Functional.logrotate/logrotate_test.sh new file mode 100644 index 0000000..dd5ce37 --- /dev/null +++ b/engine/tests/Functional.logrotate/logrotate_test.sh @@ -0,0 +1,4 @@ +#!/bin/sh +for i in tests/*.sh; do + sh $i +done diff --git a/engine/tests/Functional.logrotate/parser.py b/engine/tests/Functional.logrotate/parser.py new file mode 100644 index 0000000..d85abd7 --- /dev/null +++ b/engine/tests/Functional.logrotate/parser.py @@ -0,0 +1,22 @@ +#!/usr/bin/python +# See common.py for description of command-line arguments + +import os, sys, collections + +sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser') +import common as plib + +measurements = {} +measurements = collections.OrderedDict() + +regex_string = '^ -> (.*): TEST-(.*)$' +matches = plib.parse_log(regex_string) + +if matches: + for m in matches: + measurements['default.' + m[0]] = 'PASS' if m[1] == 'PASS' else 'FAIL' + +# split the output for each testcase +plib.split_output_per_testcase(regex_string, measurements) + +sys.exit(plib.process(measurements)) diff --git a/engine/tests/Functional.logrotate/spec.json b/engine/tests/Functional.logrotate/spec.json new file mode 100644 index 0000000..6cfafd4 --- /dev/null +++ b/engine/tests/Functional.logrotate/spec.json @@ -0,0 +1,7 @@ +{ + "testName": "Functional.logrotate", + "specs": { + "default": {} + } +} + diff --git a/engine/tests/Functional.logrotate/tests/logrotate_01.sh b/engine/tests/Functional.logrotate/tests/logrotate_01.sh new file mode 100644 index 0000000..e40647b --- /dev/null +++ b/engine/tests/Functional.logrotate/tests/logrotate_01.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# In the target to execute command logrotate and confirm the result. +# option : --help + +test="logrotate" + +if xmlcatalog --help | grep "Usage" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi diff --git a/engine/tests/Functional.logrotate/tests/logrotate_02.sh b/engine/tests/Functional.logrotate/tests/logrotate_02.sh new file mode 100644 index 0000000..dda0245 --- /dev/null +++ b/engine/tests/Functional.logrotate/tests/logrotate_02.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +# In the target to execute command logrotate and confirm the result. +# option : -dv + +test="logrotate2" + +if [ -f /var/lib/logrotate.status ] +then + rm -f /var/lib/logrotate.status +fi + +cp datas/test.conf /etc/logrotate.d/test.conf + +chown root /etc/logrotate.d/test.conf + +if logrotate -dv /etc/logrotate.d/test.conf +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi +rm -f /etc/logrotate.d/test.conf diff --git a/engine/tests/Functional.logrotate/tests/logrotate_03.sh b/engine/tests/Functional.logrotate/tests/logrotate_03.sh new file mode 100644 index 0000000..ef59c97 --- /dev/null +++ b/engine/tests/Functional.logrotate/tests/logrotate_03.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# In the target to execute command logrotate and confirm the result. +# option : -v + +test="logrotate3" + +cp datas/test.conf /etc/logrotate.d/test.conf + +logrotate -v /etc/logrotate.d/test.conf + +if tail /var/lib/logrotate.status | grep testlog +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi +rm -f /etc/logrotate.d/test.conf +sed -i '/testlog/d' /var/lib/logrotate.status diff --git a/engine/tests/Functional.logrotate/tests/logrotate_04.sh b/engine/tests/Functional.logrotate/tests/logrotate_04.sh new file mode 100644 index 0000000..7f46357 --- /dev/null +++ b/engine/tests/Functional.logrotate/tests/logrotate_04.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# In the target to execute command logrotate. Verify that the rotate file is created in the specified directory. +# option : -v + +test="logrotate4" + +if [ -f /var/log/testlog* ] +then + rm -f /var/log/testlog* +fi + +if [ -f /home/test/testlog.sh ] +then + rm -f /home/test/testlog.sh +fi + +if [ -f /var/lib/logrotate.status ] +then + rm -f /var/lib/logrotate.status +fi + +ntpdate 192.168.246.1 + +cp datas/test.conf /etc/logrotate.d/test.conf + +touch /var/log/testlog + +chmod +x datas/testlog.sh +datas/testlog.sh +chown root /etc/logrotate.d/test.conf +logrotate -v /etc/logrotate.d/test.conf +if ls /var/log/testlog.1 +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +rm -f /etc/logrotate.d/test.conf +rm -f /var/log/testlog* +sed -i '/testlog/d' /var/lib/logrotate.status +sed -i '/logrotate/d' /var/lib/logrotate.status diff --git a/engine/tests/Functional.logrotate/tests/logrotate_05.sh b/engine/tests/Functional.logrotate/tests/logrotate_05.sh new file mode 100644 index 0000000..1f38e58 --- /dev/null +++ b/engine/tests/Functional.logrotate/tests/logrotate_05.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# In the target to execute command logrotate.Verify that the rotate file is created in the specified directory(Specify the file size). +# option : -v + +test="logrotate5" + +if [ -f /var/log/testlog* ] +then + rm -f /var/log/testlog* +fi + +cp datas/test.conf /etc/logrotate.d/test.conf + +cp testlog100k /var/log/testlog + +chmod +x datas/testlog.sh +datas/testlog.sh +chown root /etc/logrotate.d/test.conf +logrotate -v /etc/logrotate.d/test.conf +if ls /var/log/testlog.1 +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi + +rm -f /etc/logrotate.d/test.conf +rm -f /var/log/testlog* +sed -i '/testlog/d' /var/lib/logrotate.status -- 1.8.3.1