From 07008eae5e0a2549633ce915225acc0f32835726 Mon Sep 17 00:00:00 2001 From: Anh <zenpoems@gmail.com> Date: Fri, 30 Nov 2018 10:26:52 -0800 Subject: [PATCH] Add sanity checks to test functionality instead of relying solely on differential testing Former-commit-id: cffb3e2424976f51b778b6bd4a7fe0b586248951 --- tests/bzip2/test_script.sh | 2 +- tests/du/test_script.sh | 5 +++++ tests/egrep/test_script.sh | 17 +++++++++++++++++ tests/fgrep/test_script.sh | 18 ++++++++++++++++++ tests/grep/test_script.sh | 18 ++++++++++++++++++ tests/ls/test_script.sh | 7 +++++++ tests/ncal/test_script.sh | 6 ++++++ tests/objdump/test_script.sh | 6 ++++++ tests/readelf/test_script.sh | 6 ++++++ tests/sort/data/data.abc | 3 +++ tests/sort/data/data.cba | 3 +++ tests/sort/test_script.sh | 8 ++++++++ tests/tar/test_script.sh | 6 ++++++ tests/tcpdump/test_script.sh | 7 +++++++ tests/touch/test_script.sh | 8 +++++++- 15 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 tests/sort/data/data.abc create mode 100644 tests/sort/data/data.cba diff --git a/tests/bzip2/test_script.sh b/tests/bzip2/test_script.sh index bf756f88c..6c9704e61 100755 --- a/tests/bzip2/test_script.sh +++ b/tests/bzip2/test_script.sh @@ -67,4 +67,4 @@ if [[ -z "$IGNORE_RESULTS" ]] && [[ -f $DATA_DIR/compression_input1_orig.bz2 ]]; fi fi cleanup -report_success \ No newline at end of file +report_success diff --git a/tests/du/test_script.sh b/tests/du/test_script.sh index d208e7a10..0b3009610 100755 --- a/tests/du/test_script.sh +++ b/tests/du/test_script.sh @@ -18,6 +18,11 @@ ORIG_NAME=du pwd echo "TEST_PROG: $TEST_PROG" +timeout 10 $BENCH /usr | grep bin +if [ ! $? -eq 0 ]; then + report_failure +fi + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/egrep/test_script.sh b/tests/egrep/test_script.sh index de2e8967e..f310d63bd 100755 --- a/tests/egrep/test_script.sh +++ b/tests/egrep/test_script.sh @@ -18,6 +18,23 @@ ORIG_NAME=grep pwd echo "TEST_PROG: $TEST_PROG" +# test basic grep functionality +TMP_LOG=/tmp/tmp.hello.$(whoami) +timeout 10 ls / | $BENCH tmp >/dev/null 2>&1 +if [ ! $? -eq 0 ]; then + report_failure +fi +echo "hello" > $TMP_LOG +$BENCH hello $TMP_LOG +if [ ! $? -eq 0 ]; then + report_failure +fi +$BENCH foobar $TMP_LOG +if [ $? -eq 0 ]; then + report_failure +fi +rm $TMP_LOG + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/fgrep/test_script.sh b/tests/fgrep/test_script.sh index de2e8967e..a401200c9 100755 --- a/tests/fgrep/test_script.sh +++ b/tests/fgrep/test_script.sh @@ -18,6 +18,24 @@ ORIG_NAME=grep pwd echo "TEST_PROG: $TEST_PROG" +# test basic grep functionality +TMP_LOG=/tmp/tmp.hello.$(whoami) +ls / | $BENCH tmp >/dev/null 2>&1 +if [ ! $? -eq 0 ]; then + report_failure +fi + +echo "hello" > $TMP_LOG +$BENCH hello $TMP_LOG +if [ ! $? -eq 0 ]; then + report_failure +fi +$BENCH foobar $TMP_LOG +if [ $? -eq 0 ]; then + report_failure +fi +rm $TMP_LOG + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/grep/test_script.sh b/tests/grep/test_script.sh index 9d01bdf48..f12d37246 100755 --- a/tests/grep/test_script.sh +++ b/tests/grep/test_script.sh @@ -18,6 +18,24 @@ ORIG_NAME=grep pwd echo "TEST_PROG: $TEST_PROG" + +# test basic grep functionality +TMP_LOG=/tmp/tmp.hello.$(whoami) +ls / | $BENCH tmp >/dev/null 2>&1 +if [ ! $? -eq 0 ]; then + report_failure +fi +echo "hello" > $TMP_LOG +$BENCH hello $TMP_LOG +if [ ! $? -eq 0 ]; then + report_failure +fi +$BENCH foobar $TMP_LOG +if [ $? -eq 0 ]; then + report_failure +fi +rm $TMP_LOG + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/ls/test_script.sh b/tests/ls/test_script.sh index 3fe317f0c..294a7dc06 100755 --- a/tests/ls/test_script.sh +++ b/tests/ls/test_script.sh @@ -18,6 +18,13 @@ ORIG_NAME=ls pwd echo "TEST_PROG: $TEST_PROG" + +# sanity check +$BENCH / | grep tmp >/dev/null 2>&1 +if [ ! $? -eq 0 ]; then + report_failure +fi + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/ncal/test_script.sh b/tests/ncal/test_script.sh index 443aa38e0..6bfac8c67 100755 --- a/tests/ncal/test_script.sh +++ b/tests/ncal/test_script.sh @@ -16,6 +16,12 @@ ORIG_NAME=ncal pwd echo "TEST_PROG: $TEST_PROG" +# sanity check +timeout 10 $BENCH 2000 | grep -i october +if [ ! $? -eq 0 ];then + report_failure +fi + ARGS=("" "-h" "-bogus" "2000" "-w 2000" "-3 5 2001" "1 2000" "1 1999" "-j 2000" "-J 2000" "-S 1000" "-M 1015" "-J -o 12 9999" "-e -p -y 2000" "-M -y -B9 -A5 2000" "-S -y -B10 -A10 2000" "-1" "-A-20 -B-5 1000" "-w -m 3 1111" "-N 2000" "-N -w 2000" "-N -3 8 2001" "-N 1 2000" "-N 1 1999" "-N -j 2000" "-N -J 2000" "-N -S 1000" "-N -M 1015" "-N -J -o 12 9999" "-N -e -p -y 2000" "-N -M -y -B9 -A5 2000" "-N -S -y -B10 -A10 2000" "-N -1" "-N -A-20 -B-5 1000" "-N -w -m 3 1111" "-N -y 1999 -m 3" "-N -y -b" "-N -s GB 2000") for ix in ${!ARGS[*]} diff --git a/tests/objdump/test_script.sh b/tests/objdump/test_script.sh index 1f544d6ae..29a4e2f50 100755 --- a/tests/objdump/test_script.sh +++ b/tests/objdump/test_script.sh @@ -18,6 +18,12 @@ ORIG_NAME=objdump pwd echo "TEST_PROG: $TEST_PROG" +# sanity check +timeout 10 $BENCH -D /bin/ls | grep -e add >/dev/null 2>&1 +if [ ! $? -eq 0 ];then + report_failure +fi + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/readelf/test_script.sh b/tests/readelf/test_script.sh index dceaed61b..dab4fa9a8 100755 --- a/tests/readelf/test_script.sh +++ b/tests/readelf/test_script.sh @@ -18,6 +18,12 @@ ORIG_NAME=readelf pwd echo "TEST_PROG: $TEST_PROG" +# sanity check readelf +timeout 10 $BENCH -h /bin/ls | grep -i "header" >/dev/null 2>&1 +if [ ! $? -eq 0 ]; then + report_failure +fi + run_basic_test 120 --help run_basic_test 120 --version run_basic_test 120 --doesnotexist diff --git a/tests/sort/data/data.abc b/tests/sort/data/data.abc new file mode 100644 index 000000000..de980441c --- /dev/null +++ b/tests/sort/data/data.abc @@ -0,0 +1,3 @@ +a +b +c diff --git a/tests/sort/data/data.cba b/tests/sort/data/data.cba new file mode 100644 index 000000000..e274b2bb1 --- /dev/null +++ b/tests/sort/data/data.cba @@ -0,0 +1,3 @@ +c +b +a diff --git a/tests/sort/test_script.sh b/tests/sort/test_script.sh index a1c1b0051..0ac6b3526 100755 --- a/tests/sort/test_script.sh +++ b/tests/sort/test_script.sh @@ -18,6 +18,14 @@ ORIG_NAME=sort pwd echo "TEST_PROG: $TEST_PROG" +# sanity check +SORTED=/tmp/tmp.sorted.$(whoami) +timeout 20 $BENCH $DATA_DIR/data.cba > $SORTED +diff $SORTED $DATA_DIR/data.abc +if [ ! $? -eq 0 ]; then + report_failure +fi +rm $SORTED run_basic_test 120 --help run_basic_test 120 --version diff --git a/tests/tar/test_script.sh b/tests/tar/test_script.sh index 274a2b5c5..98a249c31 100755 --- a/tests/tar/test_script.sh +++ b/tests/tar/test_script.sh @@ -24,6 +24,12 @@ run_basic_test 120 --doesnotexist run_basic_test 120 -cvf $DATA_DIR.tar $DATA_DIR run_basic_test 120 -tvf $DATA_DIR/test.tar $DATA_DIR +# sanity check tar functionality +timeout 10 $BENCH -tf $DATA_DIR.tar | grep dir1 +if [ ! $? -eq 0 ];then + report_failure +fi + rm $DATA_DIR.tar cleanup diff --git a/tests/tcpdump/test_script.sh b/tests/tcpdump/test_script.sh index 334d32391..dfc1a02b0 100755 --- a/tests/tcpdump/test_script.sh +++ b/tests/tcpdump/test_script.sh @@ -13,6 +13,13 @@ DELETE_FILTER="stonesoup|gcc|lib|DUMMY|exec|python|tcpdump" run_basic_test 20 -h run_basic_test 20 -n -r $TEST_DIR/tcpd_tests/bgp_vpn_attrset.pcap -t -v + +# sanity check tcpdump +timeout 10 $BENCH -n -r $TEST_DIR/tcpd_tests/bgp_vpn_attrset.pcap -t -v | grep -i "message" >/dev/null 2>&1 +if [ ! $? -eq 0 ];then + report_failure +fi + run_basic_test 20 -$i -s0 -nr $TEST_DIR/tcpd_tests/print-flags.pcap run_basic_test 20 -n -r $TEST_DIR/tcpd_tests/mpbgp-linklocal-nexthop.pcap -t -v run_basic_test 20 -n -r $TEST_DIR/tcpd_tests/eapon1.pcap -t diff --git a/tests/touch/test_script.sh b/tests/touch/test_script.sh index a280f88e7..091698b6e 100755 --- a/tests/touch/test_script.sh +++ b/tests/touch/test_script.sh @@ -7,6 +7,12 @@ ORIG_NAME=touch #must import the library here, as it depends on some of the above variables . $TEST_LIB +# sanity check +timeout 10 $BENCH --help | grep FILE +if [ ! $? -eq 0 ];then + report_failure +fi + run_basic_test 20 --help run_basic_test 20 --version rm -f tmp @@ -15,4 +21,4 @@ rm -f tmp #no arg test run_basic_test 10 -report_success \ No newline at end of file +report_success -- GitLab