diff options
author | David Sterba <dsterba@suse.com> | 2015-10-06 13:11:09 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2015-10-21 14:29:26 +0200 |
commit | 982950b74b7754a99e8a2d302a57b1b4348f7574 (patch) | |
tree | 837eace3d29997242f599405c24bdebf7919696d /tests/misc-tests/009-subvolume-sync-must-wait/test.sh | |
parent | c47a831cd653fa4ef4979ae7007e60037eddcb37 (diff) |
btrfs-progs: misc tests: add 009-subvolume-sync-must-wait
Test to verify that subovolume sync waits until the subvolume is
cleaned.
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tests/misc-tests/009-subvolume-sync-must-wait/test.sh')
-rwxr-xr-x | tests/misc-tests/009-subvolume-sync-must-wait/test.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/misc-tests/009-subvolume-sync-must-wait/test.sh b/tests/misc-tests/009-subvolume-sync-must-wait/test.sh new file mode 100755 index 00000000..66d38ea5 --- /dev/null +++ b/tests/misc-tests/009-subvolume-sync-must-wait/test.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# +# Verify that subovolume sync waits until the subvolume is cleaned + +source $TOP/tests/common + +check_prereq mkfs.btrfs +setup_root_helper + +run_check truncate -s 2G $IMAGE +run_check $TOP/mkfs.btrfs -f $IMAGE +run_check $SUDO_HELPER mount $IMAGE $TEST_MNT +run_check $SUDO_HELPER chmod a+rw $TEST_MNT + +cd $TEST_MNT + +for i in `seq 5`; do + run_check dd if=/dev/zero of=file$i bs=1M count=10 +done + +for sn in `seq 4`;do + run_check $SUDO_HELPER $TOP/btrfs subvolume snapshot . snap$sn + for i in `seq 10`; do + run_check dd if=/dev/zero of=snap$sn/file$i bs=1M count=10 + done +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` + +# delete, sync after some time +run_check $SUDO_HELPER $TOP/btrfs subvolume delete -c snap3 +{ sleep 5; run_check $TOP/btrfs filesystem sync $TEST_MNT; } & + +run_check $SUDO_HELPER $TOP/btrfs subvolume sync . $idtodel + +if run_check_stdout $SUDO_HELPER $TOP/btrfs subvolume list -d . | + grep -q "ID $idtodel.*DELETED"; then + _fail "sync did not wait for the subvolume cleanup" +fi + +run_check $TOP/btrfs filesystem sync $TEST_MNT +run_check $SUDO_HELPER $TOP/btrfs subvolume list -d . + +wait +cd .. + +run_check $SUDO_HELPER umount $TEST_MNT |