Skip to content

Commit

Permalink
btrfs-progs: tests: also test --subvol modifiers in mkfs-tests/036-ro…
Browse files Browse the repository at this point in the history
…otdir-subvol

Adds tests to mkfs-tests/036-rootdir-subvol for the modifiers to
mkfs.btrfs --subvol: ro, rw, default, and default-ro.

Signed-off-by: Mark Harmstone <[email protected]>
  • Loading branch information
maharmstone authored and adam900710 committed Oct 10, 2024
1 parent 6a1d4ad commit bb1e846
Showing 1 changed file with 50 additions and 7 deletions.
57 changes: 50 additions & 7 deletions tests/mkfs-tests/036-rootdir-subvol/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,53 @@ basic()
run_check mkdir "$tmp/dir/subvol"
run_check touch "$tmp/dir/subvol/bar"

run_check_mkfs_test_dev --rootdir "$tmp" --subvol dir/subvol
if [ "$1" != "" ]; then
run_check_mkfs_test_dev --rootdir "$tmp" --subvol $1:dir/subvol
else
run_check_mkfs_test_dev --rootdir "$tmp" --subvol dir/subvol
fi

run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"

run_check_mount_test_dev
run_check_mount_test_dev -o subvolid=5
run_check_stdout $SUDO_HELPER "$TOP/btrfs" subvolume list "$TEST_MNT" | \
cut -d\ -f9 > "$tmp/output"
run_check_stdout "$TOP/btrfs" property get "$TEST_MNT/dir/subvol" ro | \
cut -d = -f2 > "$tmp/output2"
run_check_stdout "$TOP/btrfs" subvolume get-default "$TEST_MNT" | \
cut -d\ -f2 > "$tmp/output3"
run_check_umount_test_dev

result=$(cat "$tmp/output")

if [ "$result" != "dir/subvol" ]; then
_fail "dir/subvol not in subvolume list"
fi

result=$(cat "$tmp/output2")

if [ "$1" == "ro" -o "$1" == "default-ro" ]; then
if [ "$result" != "true" ]; then
_fail "dir/subvol was read-write, expected read-only"
fi
else
if [ "$result" != "false" ]; then
_fail "dir/subvol was read-only, expected read-write"
fi
fi

result=$(cat "$tmp/output3")

if [ "$1" == "default" -o "$1" == "default-ro" ]; then
if [ "$result" != "256" ]; then
_fail "default subvol was $result, expected 256"
fi
else
if [ "$result" != "5" ]; then
_fail "default subvol was $result, expected 5"
fi
fi

rm -rf -- "$tmp/foo" "$tmp/dir"
}

Expand Down Expand Up @@ -61,10 +95,15 @@ split_by_subvolume_hardlinks()
run_check mkdir "$tmp/subv"
run_check ln "$tmp/hl1" "$tmp/subv/hl3"

run_check_mkfs_test_dev --rootdir "$tmp" --subvol subv
if [ "$1" != "" ]; then
run_check_mkfs_test_dev --rootdir "$tmp" --subvol $1:subv
else
run_check_mkfs_test_dev --rootdir "$tmp" --subvol subv
fi

run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"

run_check_mount_test_dev
run_check_mount_test_dev -o subvolid=5
nr_hardlink=$(run_check_stdout $SUDO_HELPER stat -c "%h" "$TEST_MNT/hl1")

if [ "$nr_hardlink" -ne 2 ]; then
Expand All @@ -76,10 +115,14 @@ split_by_subvolume_hardlinks()
_fail "hard link number incorrect for subv/hl3, has ${nr_hardlink} expect 1"
fi
run_check_umount_test_dev
rm -rf -- "$tmp/hl1" "$tmp/hl2" "$tmp/dir"
rm -rf -- "$tmp/hl1" "$tmp/hl2" "$tmp/subv"
}

basic
for mod in "" ro rw default default-ro;
do
basic $mod
split_by_subvolume_hardlinks $mod
done

basic_hardlinks
split_by_subvolume_hardlinks
rm -rf -- "$tmp"

0 comments on commit bb1e846

Please sign in to comment.