]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
common: helper to print raw byte output from qgroup show
authorDavid Sterba <dsterba@suse.cz>
Thu, 12 Feb 2015 03:13:15 +0000 (14:13 +1100)
committerDave Chinner <david@fromorbit.com>
Thu, 12 Feb 2015 03:13:15 +0000 (14:13 +1100)
Newer versions of btrfs-progs change the default output of 'qgroup
show', we have to check what version is running and use the right option
if needed.

Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Dave Chinner <david@fromorbit.com>
common/rc
tests/btrfs/017
tests/btrfs/022
tests/btrfs/057

index 5377ba08d2162995befcec91e8b74eda9c4fa585..f6a603de5cbf7eb2d20392bcc8e2eb532807cad5 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -2799,6 +2799,13 @@ _btrfs_stress_replace()
        done
 }
 
+# find the right option to force output in bytes, older versions of btrfs-progs
+# print that by default, newer print human readable numbers with unit suffix
+_btrfs_qgroup_units()
+{
+       $BTRFS_UTIL_PROG qgroup show --help 2>&1 | grep -q -- --raw && echo "--raw"
+}
+
 # return device size in kb
 _get_device_size()
 {
index d00d7c85159bd9dd504e46ffa27113a393b87ce2..f8855e3d893a8dccad0983f1b381f65744dd7383 100755 (executable)
@@ -79,7 +79,8 @@ rm -fr $SCRATCH_MNT/snap/foo*
 
 sync
 
-$BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | $AWK_PROG '/[0-9]/ {print $2" "$3}'
+units=`_btrfs_qgroup_units`
+$BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | $AWK_PROG '/[0-9]/ {print $2" "$3}'
 
 # success, all done
 status=0
index 16e1eadc1f6fc926ac405cf509855424d57d553c..5c1a82d7975732a1999aa2d2be4f70cd83f9fddd 100755 (executable)
@@ -52,7 +52,7 @@ _basic_test()
        _run_btrfs_util_prog subvolume create $SCRATCH_MNT/a
        _run_btrfs_util_prog quota enable $SCRATCH_MNT/a
        subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT a)
-       $BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | grep $subvolid >> \
+       $BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | grep $subvolid >> \
                $seqres.full 2>&1
        [ $? -eq 0 ] || _fail "couldn't find our subvols quota group"
        run_check $FSSTRESS_PROG -d $SCRATCH_MNT/a -w -p 1 -n 2000 \
@@ -62,10 +62,10 @@ _basic_test()
 
        # the shared values of both the original subvol and snapshot should
        # match
-       a_shared=$($BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | grep $subvolid)
+       a_shared=$($BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | grep $subvolid)
        a_shared=$(echo $a_shared | awk '{ print $2 }')
        subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT b)
-       b_shared=$($BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | grep $subvolid)
+       b_shared=$($BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | grep $subvolid)
        b_shared=$(echo $b_shared | awk '{ print $2 }')
        [ $b_shared -eq $a_shared ] || _fail "shared values don't match"
 }
@@ -81,12 +81,12 @@ _rescan_test()
        run_check $FSSTRESS_PROG -d $SCRATCH_MNT/a -w -p 1 -n 2000 \
                $FSSTRESS_AVOID
        sync
-       output=$($BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | grep $subvolid)
+       output=$($BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | grep $subvolid)
        echo $output >> $seqres.full
        refer=$(echo $output | awk '{ print $2 }')
        excl=$(echo $output | awk '{ print $3 }')
        _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
-       output=$($BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | grep $subvolid)
+       output=$($BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | grep $subvolid)
        echo $output >> $seqres.full
        [ $refer -eq $(echo $output | awk '{ print $2 }') ] || \
                _fail "reference values don't match after rescan"
@@ -118,6 +118,8 @@ _limit_test_noexceed()
        [ $? -eq 0 ] || _fail "should have been allowed to write"
 }
 
+units=`_btrfs_qgroup_units`
+
 _scratch_mkfs > /dev/null 2>&1
 _scratch_mount
 _basic_test
index f6f4e0e8949f44c72b1ebd2170f74d81d3c78714..605bd020b09e016f02e2dfea05a88f94ea59d44f 100755 (executable)
@@ -74,7 +74,8 @@ _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
 rm -rf $SCRATCH_MNT/* >& /dev/null
 
 _run_btrfs_util_prog filesystem sync $SCRATCH_MNT
-$BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | $SED_PROG -n '/[0-9]/p' \
+units=`_btrfs_qgroup_units`
+$BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | $SED_PROG -n '/[0-9]/p' \
        | $AWK_PROG '{print $2" "$3}'
 
 status=0