b24616a914eb8b27cd2d36dead7807eb975318b1
[platform/upstream/btrfs-progs.git] / tests / misc-tests / 003-zero-log / test.sh
1 #!/bin/bash
2 # test zero-log
3
4 source "$TEST_TOP/common"
5
6 check_prereq mkfs.btrfs
7 check_prereq btrfs
8 prepare_test_dev
9
10 get_log_root()
11 {
12         "$TOP/btrfs" inspect-internal dump-super "$1" | \
13                 grep '^log_root\>' | awk '{print $2}'
14 }
15 get_log_root_level() {
16         "$TOP/btrfs" inspect-internal dump-super "$1" | \
17                 grep '^log_root_level' | awk '{print $2}'
18 }
19
20 test_zero_log()
21 {
22         # FIXME: we need an image with existing log_root
23         run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f \
24                 --rootdir "$INTERNAL_BIN/Documentation" \
25                 "$TEST_DEV"
26         run_check "$TOP/btrfs" inspect-internal dump-super "$TEST_DEV"
27         if [ "$1" = 'standalone' ]; then
28                 run_check "$TOP/btrfs" rescue zero-log "$TEST_DEV"
29         else
30                 run_check "$TOP/btrfs-zero-log" "$TEST_DEV"
31         fi
32         log_root=$(get_log_root "$TEST_DEV")
33         log_root_level=$(get_log_root "$TEST_DEV")
34         if [ "$log_root" != 0 ]; then
35                 _fail "FAIL: log_root not reset"
36         fi
37         if [ "$log_root_level" != 0 ]; then
38                 _fail "FAIL: log_root_level not reset"
39         fi
40         run_check "$TOP/btrfs" inspect-internal dump-super "$TEST_DEV"
41         run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"
42 }
43
44 test_zero_log standalone
45 test_zero_log internal