All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cyril Hrubis <chrubis@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v2 1/1] tst_test.sh: Add test cmd helper tst_test_cmds()
Date: Tue, 24 Jul 2018 11:35:37 +0200	[thread overview]
Message-ID: <20180724093537.GA19255@rei> (raw)
In-Reply-To: <20180423091706.24154-1-pvorel@suse.cz>

Hi!
> + 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().

Hmm looking at this after a while I would expect the tst_test_cmds() to
exit the test while tst_check_cmds() to return a value, the question is
if this is worth of the work of renaming the current uses...

> 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.

This looks fine to me.

>  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

	BTW you can just write 'for cmd; do' here since the default
	array to loop over are the parameters passed to a function.

> -		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

Can we add explicit return 0 here?

Other than that it's fine.

>  }
> -- 
> 2.16.3
> 

-- 
Cyril Hrubis
chrubis@suse.cz

  parent reply	other threads:[~2018-07-24  9:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-23  9:17 [LTP] [PATCH v2 1/1] tst_test.sh: Add test cmd helper tst_test_cmds() Petr Vorel
2018-06-01  9:42 ` Petr Vorel
2018-07-24  9:35 ` Cyril Hrubis [this message]
2018-07-24 12:57   ` Petr Vorel
2018-07-24 13:15     ` Cyril Hrubis
2018-07-24 15:19       ` Petr Vorel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180724093537.GA19255@rei \
    --to=chrubis@suse.cz \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.