diff options
author | Misono, Tomohiro <misono.tomohiro@jp.fujitsu.com> | 2017-09-07 10:48:27 +0900 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-09-08 16:15:05 +0200 |
commit | a351dd847873e2605e5796de94db235575304f72 (patch) | |
tree | f982ce551996865c30353d58094e6ad0311d56a7 /tests/misc-tests | |
parent | 6fb88e28596a6fc8802640197428fd4c9244703b (diff) |
btrfs-progs: test: add new test for inspect-internal rootid
This new test checks inspect-internal rootid
- handle path to subvolume/directory/file as an argument
- get different id for each subvolume
- get the expected id for each file/directory (i.e. the same as
containing subvolume)
Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tests/misc-tests')
-rwxr-xr-x | tests/misc-tests/024-inspect-internal-rootid/test.sh | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/misc-tests/024-inspect-internal-rootid/test.sh b/tests/misc-tests/024-inspect-internal-rootid/test.sh new file mode 100755 index 00000000..40e382bb --- /dev/null +++ b/tests/misc-tests/024-inspect-internal-rootid/test.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# +# test commands of inspect-internal rootid + +source "$TOP/tests/common" + +check_prereq mkfs.btrfs +check_prereq btrfs + +prepare_test_dev + +run_check "$TOP/mkfs.btrfs" -f "$TEST_DEV" +run_check_mount_test_dev +run_check $SUDO_HELPER chmod a+rw "$TEST_MNT" +cd "$TEST_MNT" + +run_check "$TOP/btrfs" subvolume create sub +run_check "$TOP/btrfs" subvolume create sub/subsub +run_check mkdir dir +run_check touch file1 +run_check touch dir/file2 +run_check touch sub/file3 + +id1=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid .) \ + || { echo $id1; exit 1; } +id2=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid sub) \ + || { echo $id2; exit 1; } +id3=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid sub/subsub) \ + || { echo $id3; exit 1; } +id4=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid dir) \ + || { echo $id4; exit 1; } +id5=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid file1) \ + || { echo $id5; exit 1; } +id6=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid dir/file2) \ + || { echo $id6; exit 1; } +id7=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid sub/file3) \ + || { echo $id7; exit 1; } + +if ! ([ $id1 -ne $id2 ] && [ $id1 -ne $id3 ] && [ $id2 -ne $id3 ]); then + _fail "inspect-internal rootid: each subvolume must have different id" +fi + +if ! ([ $id1 -eq $id4 ] && [ $id1 -eq $id5 ] && [ $id1 -eq $id6 ]); then + _fail "inspect-internal rootid: rootid mismatch found" +fi + +if ! ([ $id2 -eq $id7 ]); then + _fail "inspect-internal rootid: rootid mismatch found" +fi + +run_mustfail "should fail for non existent file" \ + "$TOP/btrfs" inspect-internal rootid no_such_file +run_mustfail "should fail for non-btrfs filesystem" \ + "$TOP/btrfs" inspect-internal rootid /dev/null + +cd .. +run_check_umount_test_dev |