@@ -11,23 +11,75 @@ prepare_test_dev
1111
1212tmp=$( _mktemp_dir mkfs-rootdir)
1313
14- run_check touch " $tmp /foo"
15- run_check mkdir " $tmp /dir"
16- run_check mkdir " $tmp /dir/subvol"
17- run_check touch " $tmp /dir/subvol/bar"
14+ basic ()
15+ {
16+ run_check touch " $tmp /foo"
17+ run_check mkdir " $tmp /dir"
18+ run_check mkdir " $tmp /dir/subvol"
19+ run_check touch " $tmp /dir/subvol/bar"
1820
19- run_check_mkfs_test_dev --rootdir " $tmp " --subvol dir/subvol
20- run_check $SUDO_HELPER " $TOP /btrfs" check " $TEST_DEV "
21+ run_check_mkfs_test_dev --rootdir " $tmp " --subvol dir/subvol
22+ run_check $SUDO_HELPER " $TOP /btrfs" check " $TEST_DEV "
2123
22- run_check_mount_test_dev
23- run_check_stdout $SUDO_HELPER " $TOP /btrfs" subvolume list " $TEST_MNT " | \
24+ run_check_mount_test_dev
25+ run_check_stdout $SUDO_HELPER " $TOP /btrfs" subvolume list " $TEST_MNT " | \
2426 cut -d\ -f9 > " $tmp /output"
25- run_check_umount_test_dev
27+ run_check_umount_test_dev
2628
27- result=$( cat " $tmp /output" )
29+ result=$( cat " $tmp /output" )
2830
29- if [ " $result " != " dir/subvol" ]; then
30- _fail " dir/subvol not in subvolume list"
31- fi
31+ if [ " $result " != " dir/subvol" ]; then
32+ _fail " dir/subvol not in subvolume list"
33+ fi
34+ rm -rf -- " $tmp /foo" " $tmp /dir"
35+ }
3236
37+ basic_hardlinks ()
38+ {
39+ run_check touch " $tmp /hl1"
40+ run_check ln " $tmp /hl1" " $tmp /hl2"
41+ run_check mkdir " $tmp /dir"
42+ run_check ln " $tmp /hl1" " $tmp /dir/hl3"
43+
44+ run_check_mkfs_test_dev --rootdir " $tmp "
45+ run_check $SUDO_HELPER " $TOP /btrfs" check " $TEST_DEV "
46+
47+ run_check_mount_test_dev
48+ nr_hardlink=$( run_check_stdout $SUDO_HELPER stat -c " %h" " $TEST_MNT /hl1" )
49+
50+ if [ " $nr_hardlink " -ne 3 ]; then
51+ _fail " hard link number incorrect, has ${nr_hardlink} expect 3"
52+ fi
53+ run_check_umount_test_dev
54+ rm -rf -- " $tmp /hl1" " $tmp /hl2" " $tmp /dir"
55+ }
56+
57+ split_by_subvolume_hardlinks ()
58+ {
59+ run_check touch " $tmp /hl1"
60+ run_check ln " $tmp /hl1" " $tmp /hl2"
61+ run_check mkdir " $tmp /subv"
62+ run_check ln " $tmp /hl1" " $tmp /subv/hl3"
63+
64+ run_check_mkfs_test_dev --rootdir " $tmp " --subvol subv
65+ run_check $SUDO_HELPER " $TOP /btrfs" check " $TEST_DEV "
66+
67+ run_check_mount_test_dev
68+ nr_hardlink=$( run_check_stdout $SUDO_HELPER stat -c " %h" " $TEST_MNT /hl1" )
69+
70+ if [ " $nr_hardlink " -ne 2 ]; then
71+ _fail " hard link number incorrect for hl1, has ${nr_hardlink} expect 2"
72+ fi
73+
74+ nr_hardlink=$( run_check_stdout $SUDO_HELPER stat -c " %h" " $TEST_MNT /subv/hl3" )
75+ if [ " $nr_hardlink " -ne 1 ]; then
76+ _fail " hard link number incorrect for subv/hl3, has ${nr_hardlink} expect 1"
77+ fi
78+ run_check_umount_test_dev
79+ rm -rf -- " $tmp /hl1" " $tmp /hl2" " $tmp /dir"
80+ }
81+
82+ basic
83+ basic_hardlinks
84+ split_by_subvolume_hardlinks
3385rm -rf -- " $tmp "
0 commit comments