btrfs-progs: tests: filter output for run_check_stdout
Since run_check_stdout() can insert INSTRUMENT for all btrfs related programs, which could easily pollute the stdout, any caller of run_check_stdout() should do proper filter. The following callers are affected: - misc/004 Filter the output of "btrfs ins min-dev-size" - misc/009 - misc/013 - misc/024 They are all calling "btrfs ins rootid", so introduce get_subvolid() function to grab the subvolid properly. - misc/031 Loose the filter for "btrfs qgroup show". No need for "tail -n 1". So we still have the same coverage, but now these tests won't cause false alert if we insert INSTRUMENT for all btrfs commands. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
82464a03e7
commit
8c759d5a06
13
tests/common
13
tests/common
|
@ -169,6 +169,9 @@ run_check()
|
|||
|
||||
# same as run_check but the stderr+stdout output is duplicated on stdout and
|
||||
# can be processed further
|
||||
#
|
||||
# NOTE: If this function is called on btrfs related commands, caller should
|
||||
# filter the output, as INSTRUMENT can easily pollute the output.
|
||||
run_check_stdout()
|
||||
{
|
||||
local spec
|
||||
|
@ -636,6 +639,16 @@ check_min_kernel_version()
|
|||
return 0
|
||||
}
|
||||
|
||||
# Get subvolume id for specified path
|
||||
_get_subvolid()
|
||||
{
|
||||
# run_check_stdout may have INSTRUMENT polluting the output, we need to
|
||||
# filter the output
|
||||
run_check_stdout "$TOP/btrfs" inspect-internal rootid "$1" | \
|
||||
grep -e "^[[:digit:]]\+$"
|
||||
|
||||
}
|
||||
|
||||
# compare running kernel version to the given parameter, return success
|
||||
# if running is newer than requested (let caller decide if to fail or skip)
|
||||
# $1: minimum version of running kernel in major.minor format (eg. 4.19)
|
||||
|
|
|
@ -11,11 +11,18 @@ check_prereq btrfs
|
|||
|
||||
setup_root_helper
|
||||
|
||||
_get_min_dev_size()
|
||||
{
|
||||
size=$(run_check_stdout $SUDO_HELPER "$TOP/btrfs" inspect-internal \
|
||||
min-dev-size ${1:+--id "$1"} "$TEST_MNT" | \
|
||||
grep -e "^[[:digit:]]\+.*)$" | cut -d ' ' -f 1)
|
||||
echo "$size"
|
||||
}
|
||||
|
||||
# Optionally take id of the device to shrink
|
||||
shrink_test()
|
||||
{
|
||||
min_size=$(run_check_stdout $SUDO_HELPER "$TOP/btrfs" inspect-internal min-dev-size ${1:+--id "$1"} "$TEST_MNT")
|
||||
min_size=$(echo "$min_size" | cut -d ' ' -f 1)
|
||||
min_size=$(_get_min_dev_size "$1")
|
||||
_log "min size = ${min_size}"
|
||||
if [ -z "$min_size" ]; then
|
||||
_fail "Failed to parse minimum size"
|
||||
|
|
|
@ -31,7 +31,7 @@ done
|
|||
run_check $SUDO_HELPER "$TOP/btrfs" subvolume list .
|
||||
run_check $SUDO_HELPER "$TOP/btrfs" subvolume list -d .
|
||||
|
||||
idtodel=`run_check_stdout $SUDO_HELPER "$TOP/btrfs" inspect-internal rootid snap3`
|
||||
idtodel=$(_get_subvolid snap3)
|
||||
|
||||
# delete, sync after some time
|
||||
run_check $SUDO_HELPER "$TOP/btrfs" subvolume delete -c snap3
|
||||
|
|
|
@ -32,7 +32,7 @@ done
|
|||
run_check $SUDO_HELPER "$TOP/btrfs" subvolume list .
|
||||
run_check $SUDO_HELPER "$TOP/btrfs" subvolume list -d .
|
||||
|
||||
idtodel=`run_check_stdout $SUDO_HELPER "$TOP/btrfs" inspect-internal rootid snap3`
|
||||
idtodel=`$SUDO_HELPER "$TOP/btrfs" inspect-internal rootid snap3`
|
||||
|
||||
# delete, sync after some time
|
||||
run_check $SUDO_HELPER "$TOP/btrfs" subvolume delete -c snap*
|
||||
|
|
|
@ -21,20 +21,13 @@ run_check touch file1
|
|||
run_check touch dir/file2
|
||||
run_check touch sub/file3
|
||||
|
||||
id1=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid .) \
|
||||
|| { echo $id1; exit 1; }
|
||||
id2=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid sub) \
|
||||
|| { echo $id2; exit 1; }
|
||||
id3=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid sub/subsub) \
|
||||
|| { echo $id3; exit 1; }
|
||||
id4=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid dir) \
|
||||
|| { echo $id4; exit 1; }
|
||||
id5=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid file1) \
|
||||
|| { echo $id5; exit 1; }
|
||||
id6=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid dir/file2) \
|
||||
|| { echo $id6; exit 1; }
|
||||
id7=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid sub/file3) \
|
||||
|| { echo $id7; exit 1; }
|
||||
id1=$(_get_subvolid .) || { echo $id1; exit 1; }
|
||||
id2=$(_get_subvolid sub) || { echo $id2; exit 1; }
|
||||
id3=$(_get_subvolid sub/subsub) || { echo $id3; exit 1; }
|
||||
id4=$(_get_subvolid dir) || { echo $id4; exit 1; }
|
||||
id5=$(_get_subvolid file1) || { echo $id5; exit 1; }
|
||||
id6=$(_get_subvolid dir/file2) || { echo $id6; exit 1; }
|
||||
id7=$(_get_subvolid sub/file3) || { echo $id7; exit 1; }
|
||||
|
||||
if ! ([ "$id1" -ne "$id2" ] && [ "$id1" -ne "$id3" ] && [ "$id2" -ne "$id3" ]); then
|
||||
_fail "inspect-internal rootid: each subvolume must have different id"
|
||||
|
|
|
@ -18,10 +18,10 @@ run_check $SUDO_HELPER "$TOP/btrfs" qgroup assign 0/5 1/0 "$TEST_MNT"
|
|||
run_check $SUDO_HELPER "$TOP/btrfs" quota rescan -w "$TEST_MNT"
|
||||
|
||||
run_check_stdout $SUDO_HELPER "$TOP/btrfs" qgroup show --sort=-qgroupid \
|
||||
-p "$TEST_MNT" | tail -n 1 | grep -q "1/0" \
|
||||
-p "$TEST_MNT" | grep -q "1/0" \
|
||||
|| _fail "parent qgroup check failed, please check the log"
|
||||
run_check_stdout $SUDO_HELPER "$TOP/btrfs" qgroup show --sort=qgroupid \
|
||||
-c "$TEST_MNT" | tail -n 1 | grep -q "0/5" \
|
||||
-c "$TEST_MNT" | grep -q "0/5" \
|
||||
|| _fail "child qgroup check failed, please check the log"
|
||||
|
||||
run_check_umount_test_dev "$TEST_MNT"
|
||||
|
|
Loading…
Reference in New Issue