From a78c52265d755a2294a743e186ad5a6b5456d9f1 Mon Sep 17 00:00:00 2001 From: kartofen Date: Fri, 28 Apr 2023 20:39:42 +0300 Subject: testing structure done --- src/initramfs-init.sh | 5 +++-- src/libs/testing-library | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ src/tests/framework.sh | 41 ------------------------------------- src/tests/run-tests | 4 ---- src/tests/test1.sh | 19 ++++++++--------- 5 files changed, 65 insertions(+), 57 deletions(-) create mode 100755 src/libs/testing-library delete mode 100755 src/tests/framework.sh delete mode 100755 src/tests/run-tests (limited to 'src') diff --git a/src/initramfs-init.sh b/src/initramfs-init.sh index c7c212d..07272c0 100644 --- a/src/initramfs-init.sh +++ b/src/initramfs-init.sh @@ -5,7 +5,8 @@ mkdir /proc mount -t proc proc /proc insmod /usr/keylogger.ko -cd /usr/tests -./run-tests + +# test the module +echo "$(cd usr; ls -v1 tests | while read line; do tests/$line; echo; done)" exec /bin/sh diff --git a/src/libs/testing-library b/src/libs/testing-library new file mode 100755 index 0000000..a1cf3c1 --- /dev/null +++ b/src/libs/testing-library @@ -0,0 +1,53 @@ +#!/bin/sh + +function description { + echo "# DESCRIPTION: $1" +} + +# $1 is the number of total tests +function plan { + TESTS=$1; FAILED=0; CUR_TEST=0 + echo "1..$TESTS" +} + +function conclude { + PERC=$(echo "scale=2;100 * $FAILED / $TESTS" | bc) + echo "# CONCLUSION: ($PERC%) $FAILED out of $TESTS tests failed" + + if [ $TESTS -ne $CUR_TEST ]; then + echo -e "# expected $TESTS, but got $CUR_TEST tests" + fi + + if [ $FAILED -ne 0 ]; then + exit 1 + fi +} + +# $1 is the value to be tested +# $2 description +function ok { + CUR_TEST=$((CUR_TEST + 1)) + + if [ $1 -eq 0 ]; then + echo "ok $CUR_TEST - $2" + else + echo "not ok $CUR_TEST - $2" + echo -e " returned '$1'" + FAILED=$((FAILED + 1)) + fi +} + +# $1 is the expected value +# $2 is the actual value +# $3 description +function is { + CUR_TEST=$((CUR_TEST + 1)) + + if [ "$1" = "$2" ]; then + echo "ok $CUR_TEST - $3" + else + echo "not ok $CUR_TEST - $3" + echo -e " exptected '$2', but got '$1'" + FAILED=$((FAILED + 1)) + fi +} diff --git a/src/tests/framework.sh b/src/tests/framework.sh deleted file mode 100755 index d6b7854..0000000 --- a/src/tests/framework.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -# $1 is the number of total tests -function plan { - TESTS=$1 - FAILED=0 - CUR_TEST=1 - - echo "1..$TESTS" -} - -function conclude { - if [ $FAILED -ne 0 ]; then - exit 1 - fi -} - -# $1 is the value to be tested -function ok { - if [ $1 -eq 0 ]; then - echo "ok $CUR_TEST" - else - echo "not ok $CUR_TEST" - FAILED=$((FAILED + 1)) - fi - - CUR_TEST=$((CUR_TEST + 1)) -} - -# $1 is the expected value -# $2 is the actual value -function is { - if [ "$1" = "$2" ]; then - echo "ok $CUR_TEST" - else - echo "not ok $CUR_TEST - expected '$1', but got '$2'" - FAILED=$((FAILED + 1)) - fi - - CUR_TEST=$((CUR_TEST + 1)) -} diff --git a/src/tests/run-tests b/src/tests/run-tests deleted file mode 100755 index f109b8c..0000000 --- a/src/tests/run-tests +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -echo "Test 1" -./test1.sh diff --git a/src/tests/test1.sh b/src/tests/test1.sh index 52c2ba3..a432e5f 100755 --- a/src/tests/test1.sh +++ b/src/tests/test1.sh @@ -1,12 +1,11 @@ #!/bin/sh - -. ./framework.sh - -plan 2 - -is "$(cat /proc/_test_module)" "You have no previous messages" - -echo kek > /proc/_test_module -is "$(cat /proc/_test_module)" "Your last message was: kek" - +. libs/testing-library + +description "Test _test_module" +plan 5 +is "$(cat /proc/_test_module)" "You have no previous messages" "No message read" +ok $(echo kek > /proc/_test_module; echo "$?") "Successful write" +is "$(cat /proc/_test_module)" "Your last message was: kek" "Message read" +ok $(echo something > /proc/_test_module; echo "$?") "Successful write" +is "$(cat /proc/_test_module)" "Your last message was: kek" "Message read" conclude -- cgit v1.2.3