Message ID | 20220329083042.1248264-2-nborisov@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] btrfs-progs: fi show: Print missing device for a mounted file system | expand |
On Tue, Mar 29, 2022 at 11:30:42AM +0300, Nikolay Borisov wrote: > Add a test to ensure that 'btrfs fi show' on a mounted filesyste, which > has a missing device will explicitly print which device is missing. > > Signed-off-by: Nikolay Borisov <nborisov@suse.com> There are some things to fix, even if it's just shell scripting there is a coding style to follow, and some testsuite specific requirements. > --- > tests/cli-tests/016-fi-show-missing/test.sh | 35 +++++++++++++++++++++ > 1 file changed, 35 insertions(+) > create mode 100755 tests/cli-tests/016-fi-show-missing/test.sh > > diff --git a/tests/cli-tests/016-fi-show-missing/test.sh b/tests/cli-tests/016-fi-show-missing/test.sh > new file mode 100755 > index 000000000000..e24a85d05410 > --- /dev/null > +++ b/tests/cli-tests/016-fi-show-missing/test.sh > @@ -0,0 +1,35 @@ > +#!/bin/bash > +# > +# Test that if a device is missing for a mounted filesystem, btrfs fi show will > +# show which device exactly is missing. > + > +source "$TEST_TOP/common" > + > +check_prereq mkfs.btrfs > +check_prereq btrfs > + > +setup_root_helper > +setup_loopdevs 2 > +prepare_loopdevs > + > +dev1=${loopdevs[1]} > +dev2=${loopdevs[2]} > + > +run_check $SUDO_HELPER "$TOP"/mkfs.btrfs -f -draid1 $dev1 $dev2 I'd rather use "${loopdevs[@]}", also to add quoting around paths. > +# move the device, changing its path, simulating the device being missing > +mv $dev2 /dev/loop-non-existent This fails if not run by root, so run_check $SUDO_HELPER mv ... > + > +run_check $SUDO_HELPER mount -o degraded $dev1 $TEST_MNT All variables must be quoted run_check $SUDO_HELPER mount -o degraded "$dev1" "$TEST_MNT" > + > +if ! run_check_stdout $SUDO_HELPER "$TOP"/btrfs fi show $TEST_MNT | \ if ! run_check_stdout $SUDO_HELPER "$TOP"/btrfs filesystem show "$TEST_MNT" | \ no command shortcuts > + grep -q "$dev2 MISSING"; then > + > + _fail "Didn't find exact missing device" > +fi > + > +mv /dev/loop-non-existent $dev2 Again run_check $SUDO_HELPER > + > +run_check $SUDO_HELPER umount $TEST_MNT > + > +cleanup_loopdevs > + > -- > 2.17.1
diff --git a/tests/cli-tests/016-fi-show-missing/test.sh b/tests/cli-tests/016-fi-show-missing/test.sh new file mode 100755 index 000000000000..e24a85d05410 --- /dev/null +++ b/tests/cli-tests/016-fi-show-missing/test.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Test that if a device is missing for a mounted filesystem, btrfs fi show will +# show which device exactly is missing. + +source "$TEST_TOP/common" + +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper +setup_loopdevs 2 +prepare_loopdevs + +dev1=${loopdevs[1]} +dev2=${loopdevs[2]} + +run_check $SUDO_HELPER "$TOP"/mkfs.btrfs -f -draid1 $dev1 $dev2 +# move the device, changing its path, simulating the device being missing +mv $dev2 /dev/loop-non-existent + +run_check $SUDO_HELPER mount -o degraded $dev1 $TEST_MNT + +if ! run_check_stdout $SUDO_HELPER "$TOP"/btrfs fi show $TEST_MNT | \ + grep -q "$dev2 MISSING"; then + + _fail "Didn't find exact missing device" +fi + +mv /dev/loop-non-existent $dev2 + +run_check $SUDO_HELPER umount $TEST_MNT + +cleanup_loopdevs +
Add a test to ensure that 'btrfs fi show' on a mounted filesyste, which has a missing device will explicitly print which device is missing. Signed-off-by: Nikolay Borisov <nborisov@suse.com> --- tests/cli-tests/016-fi-show-missing/test.sh | 35 +++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 tests/cli-tests/016-fi-show-missing/test.sh