btrfs-progs: tests: fix source path for testsuite
[platform/upstream/btrfs-progs.git] / tests / mkfs-tests / 013-reserved-1M-for-single / test.sh
1 #!/bin/bash
2 # Test if "-m single" or "--mixed" can cause dev extent to use the reserved 1M
3 # range
4 #
5 # Other profiles will cause mkfs.btrfs to allocate new meta/sys chunks
6 # using btrfs_alloc_chunk() which won't use the 0~1M range, so other profiles
7 # are safe, but we test them nevertheless.
8
9 source "$TEST_TOP/common"
10
11 check_prereq mkfs.btrfs
12 check_prereq btrfs
13
14 prepare_test_dev
15
16 do_one_test ()
17 {
18         run_check "$TOP/mkfs.btrfs" -f "$@" "$TEST_DEV"
19
20         # Use dev-extent tree to find first device extent
21         first_dev_extent=$(run_check_stdout "$TOP/btrfs" inspect-internal \
22                 dump-tree -t device "$TEST_DEV" | \
23                 grep -oP '(?<=DEV_EXTENT )[[:digit:]]*' | head -n1)
24
25         if [ -z $first_dev_extent ]; then
26                 _fail "failed to get first device extent"
27         fi
28
29         echo "first dev extent starts at $first_dev_extent" >> "$RESULTS"
30         echo "reserved range is [0, $(( 1024 * 1024)))" >> "$RESULTS"
31         # First device extent should not start below 1M
32         if [ $first_dev_extent -lt $(( 1024 * 1024 )) ]; then
33                 _fail "first device extent occupies reserved 0~1M range"
34         fi
35 }
36
37 do_one_test --mixed
38 do_one_test -m single
39
40 do_one_test
41 do_one_test -m dup
42 do_one_test -d dup
43 do_one_test -m dup -d dup
44 do_one_test --mixed -m dup -d dup