diff --git a/Makefile.in b/Makefile.in index cda90eff..a01b957f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -215,6 +215,10 @@ test-fuzz: btrfs @echo " [TEST] fuzz-tests.sh" $(Q)bash tests/fuzz-tests.sh +test-cli: btrfs + @echo " [TEST] cli-tests.sh" + $(Q)bash tests/cli-tests.sh + test-clean: @echo "Cleaning tests" $(Q)bash tests/clean-tests.sh diff --git a/tests/cli-tests.sh b/tests/cli-tests.sh new file mode 100755 index 00000000..e65e7f50 --- /dev/null +++ b/tests/cli-tests.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# command line interface coverage tests + +unset TOP +unset LANG +LANG=C +SCRIPT_DIR=$(dirname $(readlink -f $0)) +TOP=$(readlink -f $SCRIPT_DIR/../) +TEST_DEV=${TEST_DEV:-} +RESULTS="$TOP/tests/cli-tests-results.txt" +IMAGE="$TOP/tests/test.img" + +source $TOP/tests/common + +export TOP +export RESULTS +export LANG +export IMAGE + +rm -f $RESULTS + +check_prereq btrfs + +# The tests are driven by their custom script called 'test.sh' + +for i in $(find $TOP/tests/cli-tests -maxdepth 1 -mindepth 1 -type d \ + ${TEST:+-name "$TEST"} | sort) +do + name=$(basename $i) + cd $i + if [ -x test.sh ]; then + echo "=== Entering $i" >> $RESULTS + echo " [TEST/cli] $name" + ./test.sh + if [ $? -ne 0 ]; then + _fail "test failed for case $(basename $i)" + fi + fi + cd $TOP +done diff --git a/tests/cli-tests/001-btrfs/test.sh b/tests/cli-tests/001-btrfs/test.sh new file mode 100755 index 00000000..1de2f6f2 --- /dev/null +++ b/tests/cli-tests/001-btrfs/test.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# test commands of btrfs + +source $TOP/tests/common + +check_prereq btrfs + +# returns 1 +run_mayfail $TOP/btrfs || true +run_check $TOP/btrfs version +run_check $TOP/btrfs version -- +run_check $TOP/btrfs help +run_check $TOP/btrfs help -- +run_check $TOP/btrfs --help +run_check $TOP/btrfs --help --full