[LTP] [PATCH] commands/mkswap01: Update wait_for_file function

Stanislav Kholmanskikh stanislav.kholmanskikh@oracle.com
Fri Feb 26 14:42:49 CET 2016


Hi!

Sorry for my spam in [1], [2]. My brain barely functioned on yesterday's 
evening. Now I understand that calling blkid is the right choice to 
check whether a block device exists. :-[

Both blkid, mkswap, swapon use libblkd (and take into account settings 
in blkid.conf), so if blkid finds the device, then mkswap, swapon will 
find it as well.


On 01/29/2016 06:56 PM, shuang.qiu@oracle.com wrote:
> From: Shuang Qiu <shuang.qiu@oracle.com>
>
> In commit a76b72ad31fa7bb22a09f323dadd5db7c00c7f56,it depends on the files
> under /dev/disk/by-* in wait_for_file function.But sometimes udev does not
> refresh automatically during runtime and the symbolic links will not appear.
> Update the function to use blkid instead.

checkpatch.pl warns about the style of the commit reference.

Maybe add here that blkid (since it uses libblkid as mkswap, swapon 
does) is sufficient to check the availability of block devices, whereas 
explicit checking of /dev/disk/by-* should be avoided where possible 
(man 8 blkid) ?

Plus one more comment below.

>
> Signed-off-by: Shuang Qiu <shuang.qiu@oracle.com>
> ---
>   testcases/commands/mkswap/mkswap01.sh |   25 +++++++++++++------------
>   1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/testcases/commands/mkswap/mkswap01.sh b/testcases/commands/mkswap/mkswap01.sh
> index ae4c98a..fdfc712 100755
> --- a/testcases/commands/mkswap/mkswap01.sh
> +++ b/testcases/commands/mkswap/mkswap01.sh
> @@ -46,25 +46,26 @@ cleanup()
>   	tst_rmdir
>   }
>
> -wait_for_file()
> +wait_for_device()
>   {
> -	local path="$1"
> +	local token="$1"
>   	local retries=10
>
> -	if [ -z "$path" ]; then
> +	if [ -z "$token" ]; then
>   		return
>   	fi
>
>   	while [ $retries -gt 0 ]; do
> -		if [ -e "$path" ]; then
> +		blkid -t "$token" $TST_DEVICE >/dev/null
> +		if [ $? -eq 0 ]; then
>   			return
>   		fi
> -		tst_resm TINFO "Waiting for $path to appear"
> +		tst_resm TINFO "Waiting for device $token prepared"
>   		retries=$((retries - 1))
>   		tst_sleep 10ms
>   	done
>
> -	tst_resm TWARN "The file $path haven't appeared"
> +	tst_resm TWARN "The device $token haven't prepared"

Since we rely on blkid for device availability checking, maybe change 
TWARN to TBROK here?


>   }
>
>   mkswap_verify()
> @@ -72,7 +73,7 @@ mkswap_verify()
>   	local mkswap_op="$1"
>   	local op_arg="$2"
>   	local swapfile="$3"
> -	local dev_file="$5"
> +	local token="$5"
>
>   	local before=`awk '/SwapTotal/ {print $2}' /proc/meminfo`
>
> @@ -84,7 +85,7 @@ mkswap_verify()
>   		local pagesize=$PAGE_SIZE
>   	fi
>
> -	wait_for_file "$dev_file"
> +	wait_for_device "$token"
>
>   	swapon $swapfile 2>/dev/null
>
> @@ -138,7 +139,7 @@ mkswap_test()
>   	local op_arg="$2"
>   	local device="$3"
>   	local size="$4"
> -	local dev_file="$5"
> +	local token="$5"
>
>   	local mkswap_cmd="mkswap $mkswap_op $op_arg $TST_DEVICE $size"
>
> @@ -156,7 +157,7 @@ mkswap_test()
>   	fi
>
>   	if [ -n "$device" ]; then
> -		mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$dev_file"
> +		mkswap_verify "$mkswap_op" "$op_arg" "$device" "$size" "$token"
>   		if [ $? -ne 0 ]; then
>   			tst_resm TFAIL "'${mkswap_cmd}' failed, not expected."
>   			return
> @@ -173,9 +174,9 @@ mkswap_test "" "" "$TST_DEVICE" "$((DEVICE_SIZE-10000))"
>   mkswap_test "-f" "" "$TST_DEVICE" "$((DEVICE_SIZE+10000))"
>   mkswap_test "-c" "" "$TST_DEVICE"
>   mkswap_test "-p" "2048" "$TST_DEVICE"
> -mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" "/dev/disk/by-label/ltp_testswap"
> +mkswap_test "-L" "ltp_testswap" "-L ltp_testswap" "" "LABEL=ltp_testswap"
>   mkswap_test "-v1" "" "$TST_DEVICE"
> -mkswap_test "-U" "$UUID" "-U $UUID" "" "/dev/disk/by-uuid/$UUID"
> +mkswap_test "-U" "$UUID" "-U $UUID" "" "UUID=$UUID"
>   mkswap_test "-V"
>   mkswap_test "-h"
>
>


More information about the Ltp mailing list