[Fuego] [PATCH v2] logrotate: Add test cases for command logrotate.
Wang Mingyu <[email protected]>
| Newsgroups | dev.linux.lists.fuego |
|---|---|
| Message-ID | <[email protected]> |
Logrotate is designed to ease administration of systems that generate large numbers of log files. This test set is used to check if rotate file can be created. Signed-off-by: Wang Mingyu <[email protected]> --- tests/Functional.logrotate/data/test.conf | 8 ++++ tests/Functional.logrotate/data/testlog.sh | 8 ++++ tests/Functional.logrotate/data/testlog100k | Bin 0 -> 105984 bytes tests/Functional.logrotate/fuego_test.sh | 23 ++++++++++ tests/Functional.logrotate/logrotate_test.sh | 4 ++ tests/Functional.logrotate/spec.json | 6 +++ tests/Functional.logrotate/test.yaml | 24 ++++++++++ .../tests/logrotate_config.sh | 28 ++++++++++++ .../tests/logrotate_help.sh | 13 ++++++ .../tests/logrotate_rotation.sh | 42 ++++++++++++++++++ .../tests/logrotate_size.sh | 39 ++++++++++++++++ .../tests/logrotate_status.sh | 26 +++++++++++ 12 files changed, 221 insertions(+) create mode 100644 tests/Functional.logrotate/data/test.conf create mode 100644 tests/Functional.logrotate/data/testlog.sh create mode 100644 tests/Functional.logrotate/data/testlog100k create mode 100644 tests/Functional.logrotate/fuego_test.sh create mode 100755 tests/Functional.logrotate/logrotate_test.sh create mode 100644 tests/Functional.logrotate/spec.json create mode 100644 tests/Functional.logrotate/test.yaml create mode 100644 tests/Functional.logrotate/tests/logrotate_config.sh create mode 100644 tests/Functional.logrotate/tests/logrotate_help.sh create mode 100644 tests/Functional.logrotate/tests/logrotate_rotation.sh create mode 100644 tests/Functional.logrotate/tests/logrotate_size.sh create mode 100644 tests/Functional.logrotate/tests/logrotate_status.sh diff --git a/tests/Functional.logrotate/data/test.conf b/tests/Functional.logrotate/data/test.conf new file mode 100644 index 0000000..a346adf --- /dev/null +++ b/tests/Functional.logrotate/data/test.conf @@ -0,0 +1,8 @@ +/var/log/testlog { + create 600 root root + ifempty + daily + nocompress + missingok + rotate 1 +} diff --git a/tests/Functional.logrotate/data/testlog.sh b/tests/Functional.logrotate/data/testlog.sh new file mode 100644 index 0000000..663abe3 --- /dev/null +++ b/tests/Functional.logrotate/data/testlog.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +today=$(date +%s) +# there are 86000 seconds in a day +yesterday=$(( $today - 86000 )) +ddch=$(date --date "@$yesterday" "+%Y-%m-%d") +echo "logrotate state -- version 2" >> /var/lib/logrotate.status +echo "\"/var/log/testlog\" $ddch" >> /var/lib/logrotate.status diff --git a/tests/Functional.logrotate/data/testlog100k b/tests/Functional.logrotate/data/testlog100k new file mode 100644 index 0000000000000000000000000000000000000000..1dc679f54731568a9cbda775a663b7ea51595fe3 GIT binary patch literal 105984 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 literal 0 HcmV?d00001 diff --git a/tests/Functional.logrotate/fuego_test.sh b/tests/Functional.logrotate/fuego_test.sh new file mode 100644 index 0000000..c6e0579 --- /dev/null +++ b/tests/Functional.logrotate/fuego_test.sh @@ -0,0 +1,23 @@ +NEED_ROOT=1 + +function test_pre_check { + assert_has_program logrotate + assert_has_program ntpdate + assert_has_program date +} + +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/data $BOARD_TESTDIR/fuego.$TESTDIR/ +} + +function test_run { + report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\ + export test_host=$SRV_IP;\ + ./logrotate_test.sh" +} + +function test_processing { + log_compare "$TESTDIR" "0" "TEST-FAIL" "n" +} diff --git a/tests/Functional.logrotate/logrotate_test.sh b/tests/Functional.logrotate/logrotate_test.sh new file mode 100755 index 0000000..dd5ce37 --- /dev/null +++ b/tests/Functional.logrotate/logrotate_test.sh @@ -0,0 +1,4 @@ +#!/bin/sh +for i in tests/*.sh; do + sh $i +done diff --git a/tests/Functional.logrotate/spec.json b/tests/Functional.logrotate/spec.json new file mode 100644 index 0000000..cfd6646 --- /dev/null +++ b/tests/Functional.logrotate/spec.json @@ -0,0 +1,6 @@ +{ + "testName": "Functional.logrotate", + "specs": { + "default": {} + } +} diff --git a/tests/Functional.logrotate/test.yaml b/tests/Functional.logrotate/test.yaml new file mode 100644 index 0000000..d43799f --- /dev/null +++ b/tests/Functional.logrotate/test.yaml @@ -0,0 +1,24 @@ +fuego_package_version: 1 +name: Functional.logrotate +description: | + Logrotate is designed to ease administration of systems that generate + large numbers of log files. + It allows automatic rotation, compression, removal, and mailing of log files. + This is a simple test to check the common options and features of logrotate. +license: BSD-3-Clause +author: Wang Mingyu <[email protected]> +maintainer: Wang Mingyu <[email protected]> +version: 1.00 +fuego_release: 1 +type: Functional +tags: ['logrotate'] +params: + SRV_IP: + description: the IP address of your host - Defined in board file +data_files: + - logrotate_test.sh + - fuego_test.sh + - spec.json + - test.yaml + - data + - tests diff --git a/tests/Functional.logrotate/tests/logrotate_config.sh b/tests/Functional.logrotate/tests/logrotate_config.sh new file mode 100644 index 0000000..bc8d707 --- /dev/null +++ b/tests/Functional.logrotate/tests/logrotate_config.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# Turns on verbose mode and confirm the result. +# option : -dv + +test="test config" + +if [ -f /var/lib/logrotate.status ] +then + mv /var/lib/logrotate.status /var/lib/logrotate.status_bak +fi + +cp data/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 + +if [ -f /var/lib/logrotate.status_bak ] +then + mv /var/lib/logrotate.status_bak /var/lib/logrotate.status +fi +rm -f /etc/logrotate.d/test.conf diff --git a/tests/Functional.logrotate/tests/logrotate_help.sh b/tests/Functional.logrotate/tests/logrotate_help.sh new file mode 100644 index 0000000..37390df --- /dev/null +++ b/tests/Functional.logrotate/tests/logrotate_help.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# In the target to execute command logrotate and confirm the result. +# option : --help + +test="help" + +if logrotate --help | grep "Usage" +then + echo " -> $test: TEST-PASS" +else + echo " -> $test: TEST-FAIL" +fi diff --git a/tests/Functional.logrotate/tests/logrotate_rotation.sh b/tests/Functional.logrotate/tests/logrotate_rotation.sh new file mode 100644 index 0000000..f0d5e92 --- /dev/null +++ b/tests/Functional.logrotate/tests/logrotate_rotation.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +# Verify that the rotate file is created in the specified directory. +# option : -v + +test="log rotation" + +if [ -f /var/log/testlog* ] +then + rm -f /var/log/testlog* +fi + +if [ -f /var/lib/logrotate.status ] +then + mv /var/lib/logrotate.status /var/lib/logrotate.status_bak +fi + +ntpdate $test_host + +cp data/test.conf /etc/logrotate.d/test.conf + +touch /var/log/testlog + +cp data/testlog.sh data/testlog_test.sh +chmod +x data/testlog_test.sh +data/testlog_test.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* +rm -f data/testlog_test.sh +if [ -f /var/lib/logrotate.status_bak ] +then + mv /var/lib/logrotate.status_bak /var/lib/logrotate.status +fi diff --git a/tests/Functional.logrotate/tests/logrotate_size.sh b/tests/Functional.logrotate/tests/logrotate_size.sh new file mode 100644 index 0000000..2e215cd --- /dev/null +++ b/tests/Functional.logrotate/tests/logrotate_size.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +# Verify that the rotate file is created in the specified directory. +# option : -v + +test="log rotation size" + +if [ -f /var/log/testlog* ] +then + rm -f /var/log/testlog* +fi + +if [ -f /var/lib/logrotate.status ] +then + mv /var/lib/logrotate.status /var/lib/logrotate.status_bak +fi +cp data/test.conf /etc/logrotate.d/test.conf + +cp data/testlog100k /var/log/testlog + +cp data/testlog.sh data/testlog_test.sh +chmod +x data/testlog_test.sh +data/testlog_test.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* +rm -f data/testlog_test.sh +if [ -f /var/lib/logrotate.status_bak ] +then + mv /var/lib/logrotate.status_bak /var/lib/logrotate.status +fi diff --git a/tests/Functional.logrotate/tests/logrotate_status.sh b/tests/Functional.logrotate/tests/logrotate_status.sh new file mode 100644 index 0000000..36f61a3 --- /dev/null +++ b/tests/Functional.logrotate/tests/logrotate_status.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# Turns on verbose mode. +# option : -v + +test="log status add" + +if [ -f /var/lib/logrotate.status ] +then + mv /var/lib/logrotate.status /var/lib/logrotate.status_bak +fi +cp data/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 +if [ -f /var/lib/logrotate.status_bak ] +then + mv /var/lib/logrotate.status_bak /var/lib/logrotate.status +fi -- 2.17.1