btrfs-progs: tests: don't pass size to prepare_test_dev if not necessary
[platform/upstream/btrfs-progs.git] / tests / fsck-tests / 013-extent-tree-rebuild / test.sh
1 #!/bin/bash
2
3 source "$TOP/tests/common"
4
5 check_prereq btrfs-corrupt-block
6 check_prereq mkfs.btrfs
7 check_prereq btrfs
8
9 setup_root_helper
10 prepare_test_dev
11
12 # test whether fsck can rebuild a corrupted extent tree
13 test_extent_tree_rebuild()
14 {
15         run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV"
16
17         run_check_mount_test_dev
18         generate_dataset small
19
20         for i in `seq 1 100`;do
21                 run_check $SUDO_HELPER "$TOP/btrfs" sub snapshot "$TEST_MNT" \
22                         "$TEST_MNT/snapaaaaaaa_$i"
23         done
24         run_check_umount_test_dev
25
26         # get extent root bytenr
27         extent_root_bytenr=`$SUDO_HELPER "$TOP/btrfs" inspect-internal dump-tree -r "$TEST_DEV" | \
28                             grep extent | awk '{print $7}'`
29         if [ -z "$extent_root_bytenr" ];then
30                 _fail "fail to get extent root bytenr"
31         fi
32
33         # corrupt extent root node block
34         run_check $SUDO_HELPER "$TOP/btrfs-corrupt-block" -l "$extent_root_bytenr" \
35                 -b 4096 "$TEST_DEV"
36
37         $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV" >& /dev/null && \
38                         _fail "btrfs check should detect failure"
39         run_check $SUDO_HELPER "$TOP/btrfs" check --repair --init-extent-tree "$TEST_DEV"
40         run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"
41 }
42
43 test_extent_tree_rebuild