[LTP] [PATCH] run-posix-option-group-test.sh: Log and exit if one attempts to run tests without compiling
Petr Vorel
pvorel@suse.cz
Fri Jun 10 07:41:55 CEST 2022
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
More information about the ltp
mailing list