From 982950b74b7754a99e8a2d302a57b1b4348f7574 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Tue, 6 Oct 2015 13:11:09 +0200 Subject: 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 --- .../009-subvolume-sync-must-wait/test.sh | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 tests/misc-tests/009-subvolume-sync-must-wait/test.sh (limited to 'tests/misc-tests') 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 -- cgit v1.2.3