[LTP] [PATCH v2 1/1] tst_test.sh: Add test cmd helper tst_test_cmds()
Petr Vorel
pvorel@suse.cz
Fri Jun 1 11:42:08 CEST 2018
Hi,
ping, please.
Kind regards,
Petr
> + tst_cmd_available()
> tst_test_cmds() is meant to be a check just for a particular test.
> Works like tst_check_cmds(), but instead of tst_brk() calls tst_res().
> tst_cmd_available() helper can handle cases when command shell builtin
> is not available (e.g. Busybox).
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Hi,
> if you don't like using which or testing with 127 exit code in
> tst_cmd_available() (or if you don't like tst_cmd_available()), I
> can remove it.
> Kind regards,
> Petr
> ---
> doc/test-writing-guidelines.txt | 17 +++++++++++++++++
> testcases/lib/tst_test.sh | 29 +++++++++++++++++++++++++++--
> 2 files changed, 44 insertions(+), 2 deletions(-)
> diff --git a/doc/test-writing-guidelines.txt b/doc/test-writing-guidelines.txt
> index cbbfe6c0f..320b42bf8 100644
> --- a/doc/test-writing-guidelines.txt
> +++ b/doc/test-writing-guidelines.txt
> @@ -1519,6 +1519,23 @@ existence each of them and exits the test with 'TCONF' on first misssing.
> Alternatively the 'tst_check_cmds()' function can be used to do the same on
> runtime, since sometimes we need to the check at runtime too.
> +'tst_test_cmds()' can be used for requirements just for a particular test
> +as it doesn't exit (it issues 'tst_res TCONF'). Expected usage is:
> +...
> +
> +TST_TESTFUNC=do_test
> +. tst_test.sh
> +
> +do_test()
> +{
> + tst_test_cmds cmd || return
> + cmd --foo
> + ...
> +}
> +
> +tst_run
> +...
> +
> Locating kernel modules
> +++++++++++++++++++++++
> diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
> index 8d49d34b6..b3e803e05 100644
> --- a/testcases/lib/tst_test.sh
> +++ b/testcases/lib/tst_test.sh
> @@ -201,12 +201,37 @@ tst_mkfs()
> ROD_SILENT mkfs.$fs_type $fs_opts $device
> }
> +tst_cmd_available()
> +{
> + if type command > /dev/null 2>&1; then
> + command -v $1 > /dev/null 2>&1 || return 1
> + else
> + which $1 > /dev/null 2>&1
> + if [ $? -eq 0 ]; then
> + return 0
> + elif [ $? -eq 127 ]; then
> + tst_brk TCONF "missing which command"
> + else
> + return 1
> + fi
> + fi
> +}
> +
> tst_check_cmds()
> {
> local cmd
> for cmd in $*; do
> - if ! command -v $cmd > /dev/null 2>&1; then
> - tst_brk TCONF "'$cmd' not found"
> + tst_cmd_available $cmd || tst_brk TCONF "'$cmd' not found"
> + done
> +}
> +
> +tst_test_cmds()
> +{
> + local cmd
> + for cmd in $*; do
> + if ! tst_cmd_available $cmd; then
> + tst_res TCONF "'$cmd' not found"
> + return 1
> fi
> done
> }
More information about the ltp
mailing list