[LTP] [PATCH v3] commands/mkswap: Added new testcase to test mkswap(8).
Guangwen Feng
fenggw-fnst@cn.fujitsu.com
Tue Nov 17 03:22:03 CET 2015
Hi!
Thanks for your review!
I will modify the test case according to your suggestion.
Best Regards,
Guangwen Feng
On 2015/11/17 00:31, Cyril Hrubis wrote:
> Hi!
>> +TCID=mkswap01
>> +TST_TOTAL=10
>> +. test.sh
>> +
>> +setup()
>> +{
>> + tst_require_root
>> +
>> + tst_check_cmds blkid blockdev free mkswap
> ^
> uuidgen is missing here
>
>> + tst_tmpdir
>> +
>> + TST_CLEANUP=cleanup
>> +
>> + tst_acquire_device
>> +
>> + UUID=`uuidgen`
>> +
>> + DEVICE_SIZE=$((`blockdev --getsize64 $TST_DEVICE`/1024))
>> +
>> + PAGE_SIZE=`getconf PAGE_SIZE`
>> +}
>> +
>> +cleanup()
>> +{
>> + tst_release_device
>> +
>> + tst_rmdir
>> +}
>> +
>> +mkswap_verify()
>> +{
>> + local mkswap_op=$1
>> + local op_arg=$2
>> + local device=$3
>> + local size=$4
>> +
>> + local ret=0
>> +
>> + local before=`free | grep "Swap" | awk '{print $2}'`
>
> We can do better with:
>
> awk '/SwapTotal/ {print $2}' /proc/meminfo
>
> No need to call free and no need to use grep :).
>
>> + local swapsize=${4:-$DEVICE_SIZE}
>> +
>> + if [ "$mkswap_op" = "-p" ]; then
>> + local pagesize=$op_arg
>> + else
>> + local pagesize=$PAGE_SIZE
>> + fi
>> +
>> + if [ "$mkswap_op" = "-L" ] || [ "$mkswap_op" = "-U" ]; then
>> + local swapfile=$op_arg
>> + else
>> + mkswap_op=
>> + local swapfile=$device
>> + fi
>
> Can you actually pass the device for the test instead of passing
> $TST_DEVICE which is kind of pointles when you can use $TST_DEVICE in
> the mkswap_test() for the mkswap command?
>
>> + swapon $mkswap_op $swapfile 2>/dev/null
>> + if [ $? -ne 0 ]; then
>> + tst_resm TINFO "Can not do swapon on $swapfile."
>> + if [ $pagesize -ne $PAGE_SIZE ]; then
>> + tst_resm TINFO "Page size specified by 'mkswap -p' \
>> +is not equal to system's page size."
>> + tst_resm TINFO "Swapon failed expectedly."
>> + return $ret
> ^
> Just do return 0 here, it's more confusing as
> it should be as this is.
>> + fi
>> +
>> + if [ $swapsize -gt $DEVICE_SIZE ]; then
>> + tst_resm TINFO "Device size specified by 'mkswap' \
>> +greater than real size."
>> + tst_resm TINFO "Swapon failed expectedly."
>> + return $ret
>
> Here as well.
>
>> + fi
>> +
>> + tst_resm TINFO "Swapon failed unexpectedly."
>> + return 1
>> + fi
>> +
>> + local after=`free | grep "Swap" | awk '{print $2}'`
>
> Here you can simplify the command as well.
>
>> + local est=16
>
> You shoud intialize the ret=0 here.
>
>> + if [ $((after-before)) -lt $((swapsize-pagesize/1024-est)) ] || \
>> + [ $((after-before)) -gt $((swapsize-pagesize/1024+est)) ]; then
>> + ret=1
>> + fi
>
> What is the story behind the est? It should probably be worth comment
> when the size could be 16kB off or at least on which system does this
> happens.
>
> And I would compute the difference only once and store it to a variable,
> but that is minor.
>
>> + swapoff $mkswap_op $swapfile 2>/dev/null
>> + if [ $? -ne 0 ]; then
>> + tst_resm TINFO "Can not do swapoff on $swapfile."
>> + fi
>> +
>> + return $ret
>
> Otherwise it looks good.
>
More information about the Ltp
mailing list