Message ID | 20220607221816.50955-1-sturlapati@vmware.com |
---|---|
State | Accepted |
Headers | show |
Series | run-posix-option-group-test.sh: Log and exit if one attempts to run tests without compiling | expand |
Hi Sharan, > From: Sharan Turlapati <sturlapati@vmware.com> > Currently, run-posix-option-group-test.sh erroneously > logs "***Tests Completed***" when no test has actually run if the script is invoked > to run without actually compiling the tests. > Check if the .run-test files actually exist before attempting to run them. > If not found, log a message indicating the problem and suggest to check if > the tests were compiled. Exit the script without attempting to run other > tests. Can you please describe how this happen? open POSIX failed to compile? ... > +++ b/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh > @@ -22,9 +22,16 @@ EOF > run_option_group_tests() > { > - for test_script in $(find $1 -name '*.run-test' | sort); do > - (cd "$(dirname "$test_script")" && ./$(basename "$test_script")) > - done > + list_of_tests=`find $1 -name '*.run-test' | sort` > + if [[ -n $list_of_tests ]] [[ ]] are bashisms, we require support for POSIX shell (i.e. dash, busybox sh) TL;DR: simply use: if [ -n "$list_of_tests" ]; then NOTE [ ] require using quotes (unlike [[ ]]). You can check similar error yourself: $ checkbashisms run-posix-option-group-test.sh possible bashism in run-posix-option-group-test.sh line 26 (alternative test command ([[ foo ]] should be [ foo ])): if [[ -n $list_of_tests ]] All is described in: https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines#22-shell-coding-style > + then > + for test_script in $list_of_tests; do > + (cd "$(dirname "$test_script")" && ./$(basename "$test_script")) > + done > + else > + echo ".run-test files not found under $1. Were the tests compiled?" > + exit 1 > + fi > } I'd prefer slightly different version: * check for error first, then for can be out of else (readability) * add local run_option_group_tests() { local list_of_tests list_of_tests=`find $1 -name '*.run-test' | sort` if [ -z "$list_of_tests" ]; then echo ".run-test files not found under $1. Were the tests compiled?" exit 1 fi for test_script in $list_of_tests; do (cd "$(dirname "$test_script")" && ./$(basename "$test_script")) done } Kind regards, Petr
Hi Sharan, > > Currently, run-posix-option-group-test.sh erroneously > > logs "***Tests Completed***" when no test has actually run if the script is invoked > > to run without actually compiling the tests. > > Check if the .run-test files actually exist before attempting to run them. > > If not found, log a message indicating the problem and suggest to check if > > the tests were compiled. Exit the script without attempting to run other > > tests. > Can you please describe how this happen? open POSIX failed to compile? OK, you noted this in the commit message. Merged with fixed bashism, improved style and commit message. Thanks! Kind regards, Petr
diff --git a/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh b/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh index 0d4c9bd80..56773f0f0 100755 --- a/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh +++ b/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh @@ -22,9 +22,16 @@ EOF run_option_group_tests() { - for test_script in $(find $1 -name '*.run-test' | sort); do - (cd "$(dirname "$test_script")" && ./$(basename "$test_script")) - done + list_of_tests=`find $1 -name '*.run-test' | sort` + if [[ -n $list_of_tests ]] + then + for test_script in $list_of_tests; do + (cd "$(dirname "$test_script")" && ./$(basename "$test_script")) + done + else + echo ".run-test files not found under $1. Were the tests compiled?" + exit 1 + fi } case $1 in