btrfs-progs: introduce TEST_TOP and INTERNAL_BIN for tests
[platform/upstream/btrfs-progs.git] / tests / misc-tests / 002-uuid-rewrite / test.sh
1 #!/bin/bash
2 # test btrfstune uuid rewriting options
3
4 source "$TEST_TOP/common"
5
6 check_prereq mkfs.btrfs
7 check_prereq btrfstune
8 check_prereq btrfs
9
10 prepare_test_dev
11
12 get_fs_uuid() {
13         local image
14
15         image="$1"
16         run_check_stdout $TOP/btrfs inspect-internal dump-super "$image" | \
17                 grep '^fsid' | awk '{print $2}'
18 }
19
20 test_uuid_random()
21 {
22         local origuuid
23
24         origuuid=11111111-a101-4031-b29a-379d4f8b7a2d
25
26         run_check $SUDO_HELPER $TOP/mkfs.btrfs -f \
27                 --uuid $origuuid \
28                 --rootdir $INTERNAL_BIN/Documentation \
29                 $TEST_DEV
30         run_check $TOP/btrfs inspect-internal dump-super "$TEST_DEV"
31         currentfsid=$(run_check_stdout $TOP/btrfstune -f -u $TEST_DEV | \
32                 grep -i 'current fsid:' | awk '{print $3}')
33         if ! [ $currentfsid = $origuuid ]; then
34                 _fail "FAIL: current UUID mismatch"
35         fi
36         run_check $TOP/btrfs inspect-internal dump-super "$TEST_DEV"
37         run_check $SUDO_HELPER $TOP/btrfs check $TEST_DEV
38 }
39
40 test_uuid_user()
41 {
42         local origuuid
43         local newuuid
44
45         origuuid=22222222-d324-4f92-80e9-7658bf3b845f
46         newuuid=33333333-bfc9-4045-9399-a396dc6893b3
47
48         run_check $SUDO_HELPER $TOP/mkfs.btrfs -f \
49                 --uuid $origuuid \
50                 --rootdir $INTERNAL_BIN/Documentation \
51                 $TEST_DEV
52         run_check $TOP/btrfs inspect-internal dump-super "$TEST_DEV"
53         run_check $TOP/btrfstune -f -U $newuuid \
54                 $TEST_DEV
55         # btrfs inspect-internal dump-super is called within get_fs_uuid
56         fsid=$(get_fs_uuid $TEST_DEV)
57         if ! [ $fsid = $newuuid ]; then
58                 _fail "FAIL: UUID not rewritten"
59         fi
60         run_check $SUDO_HELPER $TOP/btrfs check $TEST_DEV
61 }
62
63 test_uuid_random
64 test_uuid_user