[LTP] [PATCH] lsmod01: keep the output in variables

Cyril Hrubis chrubis@suse.cz
Wed Nov 9 17:49:56 CET 2016


>  lsmod_test()
>  {
> -	lsmod >temp 2>&1
> -	if [ $? -ne 0 ]; then
> -		tst_resm TFAIL "'lsmod' failed."
> -		cat temp
> +	lsmod_output=$(lsmod | awk '!/Module/{print $1, $2, $3}' | sort)
> +	if [ -z "$lsmod_output" ]; then
> +		tst_resm TFAIL "Failed to parse the output from lsmod"
>  		return
>  	fi
>  
> -	awk '!/Module/{print $1, $2, $3}' temp |sort >temp1
> -
> -	awk '{print $1, $2, $3}' /proc/modules |sort >temp2
> +	modules_output=$(awk '{print $1, $2, $3}' /proc/modules | sort)
> +	if [ -z "$modules_output" ]; then
> +		tst_resm TFAIL "Failed to parse /proc/modules"
> +		return
> +	fi
>  
> -	diff temp1 temp2 >temp3
> -	if [ $? -ne 0 ]; then
> +	if [ "$lsmod_output" != "$modules_output" ]; then
>  		tst_resm TFAIL "lsmod output different from /proc/modules."
> -		cat temp3
> +
> +		echo "$lsmod_output" > temp1
> +		echo "$modules_output" > temp2
> +		diff temp1 temp2

Hmm since the foo=$() flattened the text into single line this diff
would be pretty much useless.

So we can either just print these two lines, or split them again
so that exactly three words/numbers are on each line before we do the
diff.

>  		return
>  	fi
>  
> -- 
> 1.7.1
> 

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list