btrfs-progs: introduce TEST_TOP and INTERNAL_BIN for tests
[platform/upstream/btrfs-progs.git] / tests / cli-tests / 007-check-force / test.sh
1 #!/bin/bash
2 #
3 # test 'btrfs check --force' on a mounted filesystem
4
5 source "$TEST_TOP/common"
6
7 check_prereq mkfs.btrfs
8 check_prereq btrfs
9
10 setup_root_helper
11
12 # we need to use a real block device, because the check opens the device in
13 # exclusive mode, that unfortunatelly behaves differently for direct file
14 # access and for the real /dev/loop0 device
15 setup_loopdevs 1
16 prepare_loopdevs
17 TEST_DEV=${loopdevs[1]}
18
19 run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV"
20 run_check_mount_test_dev
21 run_mustfail "checking mounted filesystem without --force" \
22         $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"
23 run_check $SUDO_HELPER "$TOP/btrfs" check --force "$TEST_DEV"
24 run_mustfail "checking mounted filesystem with --force --repair" \
25         $SUDO_HELPER "$TOP/btrfs" check --force --repair "$TEST_DEV"
26 run_check_umount_test_dev
27 run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"
28 run_check $SUDO_HELPER "$TOP/btrfs" check --force "$TEST_DEV"
29 run_mustfail "--force --repair on unmounted filesystem" \
30         $SUDO_HELPER "$TOP/btrfs" check --force --repair "$TEST_DEV"
31
32 cleanup_loopdevs