[LTP] [PATCH] commands/which: Added new testcase to test which(1).

Cyril Hrubis chrubis@suse.cz
Thu Dec 3 14:33:18 CET 2015


Hi!
> +setup()
> +{
> +	tst_require_root

Do we really need root for the test?

> +	tst_check_cmds which
> +
> +	tst_tmpdir
> +
> +	TST_CLEANUP="cleanup"
> +
> +	touch programname
> +	chmod +x programname
> +	PATH=$PATH:.
> +
> +	mkdir bin
> +	touch bin/programname
> +	chmod +x bin/programname
> +	PATH=$PATH:./bin
> +
> +	alias programname='programname -i'
> +}
> +
> +cleanup()
> +{
> +	tst_rmdir
> +}
> +
> +which_verify()
> +{
> +	local which_op=$1
> +	local prog_name=$2
> +
> +	if [ -z "$which_op" ]; then
> +		grep -q `pwd`/"$prog_name" temp
> +		if [ $? -ne 0 ]; then
> +			return 1
> +		fi
> +	elif [ "$which_op" = "--all" ] || [ "$which_op" = "-a" ]; then
> +		grep -q `pwd`/"$prog_name" temp
> +		if [ $? -ne 0 ]; then
> +			return 1
> +		fi
> +		grep -q `pwd`/bin/"$prog_name" temp
> +		if [ $? -ne 0 ]; then
> +			return 1
> +		fi
> +	elif [ "$which_op" = "--read-alias" ] || [ "$which_op" = "-i" ]; then
> +		grep -q "programname='programname -i'" temp
> +		if [ $? -ne 0 ]; then
> +			return 1
> +		fi
> +		grep -q `pwd`/"$prog_name" temp
> +		if [ $? -ne 0 ]; then
> +			return 1
> +		fi
> +	elif [ "$which_op" = "--skip-alias" ]; then
> +		grep -q "programname='programname -i'" temp
> +		if [ $? -eq 0 ]; then
> +			return 1
> +		fi
> +		grep -q `pwd`/"$prog_name" temp
> +		if [ $? -ne 0 ]; then
> +			return 1
> +		fi
> +	fi

Again, why don't we rather pass the expected paths as the parameters to
the which_test function? For example:

which_test "-a" "programname" "$PWD/programname" $PWD/bin/programname"

Then we will do shift twice in the which_test() and loop over the rest
of the $@ doing grep in the temp for each iteration.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the Ltp mailing list