mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-23 22:53:35 +00:00
btrfs-progs: tests: post btrfs-convert verify permissions and ACLs
Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
9cc6e92972
commit
c2f3212502
@ -123,6 +123,38 @@ convert_test_gen_checksums() {
|
|||||||
count=1 >/dev/null 2>&1
|
count=1 >/dev/null 2>&1
|
||||||
run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image' -exec md5sum {} \+ > "$CHECKSUMTMP"
|
run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image' -exec md5sum {} \+ > "$CHECKSUMTMP"
|
||||||
}
|
}
|
||||||
|
# list $TEST_MNT data set file permissions.
|
||||||
|
# $1: path where the permissions will be stored
|
||||||
|
convert_test_perm() {
|
||||||
|
local PERMTMP
|
||||||
|
PERMTMP="$1"
|
||||||
|
FILES_LIST=$(mktemp --tmpdir btrfs-progs-convert.fileslistXXXXXX)
|
||||||
|
|
||||||
|
run_check $SUDO_HELPER dd if=/dev/zero of=$TEST_MNT/test bs=$nodesize \
|
||||||
|
count=1 >/dev/null 2>&1
|
||||||
|
run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image' -fprint $FILES_LIST
|
||||||
|
# Fix directory entries order
|
||||||
|
sort $FILES_LIST -o $FILES_LIST
|
||||||
|
for file in `cat $FILES_LIST` ;do
|
||||||
|
run_check_stdout $SUDO_HELPER getfacl --absolute-names $file >> "$PERMTMP"
|
||||||
|
done
|
||||||
|
rm -- $FILES_LIST
|
||||||
|
}
|
||||||
|
# list acls of files on $TEST_MNT
|
||||||
|
# $1: path where the acls will be stored
|
||||||
|
convert_test_acl() {
|
||||||
|
local ACLSTMP
|
||||||
|
ACLTMP="$1"
|
||||||
|
FILES_LIST=$(mktemp --tmpdir btrfs-progs-convert.fileslistXXXXXX)
|
||||||
|
|
||||||
|
run_check_stdout $SUDO_HELPER find $TEST_MNT/acls -type f -fprint $FILES_LIST
|
||||||
|
# Fix directory entries order
|
||||||
|
sort $FILES_LIST -o $FILES_LIST
|
||||||
|
for file in `cat $FILES_LIST`;do
|
||||||
|
run_check_stdout $SUDO_HELPER getfattr --absolute-names -d $file >> "$ACLTMP"
|
||||||
|
done
|
||||||
|
rm -- $FILES_LIST
|
||||||
|
}
|
||||||
|
|
||||||
# do conversion with given features and nodesize, fsck afterwards
|
# do conversion with given features and nodesize, fsck afterwards
|
||||||
# $1: features, argument of -O, can be empty
|
# $1: features, argument of -O, can be empty
|
||||||
@ -133,15 +165,68 @@ convert_test_do_convert() {
|
|||||||
run_check $TOP/btrfs-show-super -Ffa $TEST_DEV
|
run_check $TOP/btrfs-show-super -Ffa $TEST_DEV
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# post conversion check, verify file permissions.
|
||||||
|
# $1: file with ext permissions.
|
||||||
|
convert_test_post_check_permissions() {
|
||||||
|
local EXT_PERMTMP
|
||||||
|
local BTRFS_PERMTMP
|
||||||
|
|
||||||
|
EXT_PERMTMP="$1"
|
||||||
|
BTRFS_PERMTMP=$(mktemp --tmpdir btrfs-progs-convert.permXXXXXX)
|
||||||
|
convert_test_perm "$BTRFS_PERMTMP"
|
||||||
|
|
||||||
|
btrfs_perm=`md5sum $BTRFS_PERMTMP | cut -f1 -d' '`
|
||||||
|
ext_perm=`md5sum $EXT_PERMTMP | cut -f1 -d' '`
|
||||||
|
|
||||||
|
if [ "$btrfs_perm" != "$ext_perm" ];
|
||||||
|
then
|
||||||
|
btrfs_perm_file=`md5sum $BTRFS_PERMTMP | cut -f2 -d' '`
|
||||||
|
ext_perm_file=`md5sum $EXT_PERMTMP | cut -f2 -d' '`
|
||||||
|
_fail "file permission failed. Mismatched BTRFS:$btrfs_perm_file:$btrfs_perm EXT:$ext_perm_file:$ext_perm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -- $BTRFS_PERMTMP
|
||||||
|
}
|
||||||
|
# post conversion check, compare BTRFS file acls against EXT.
|
||||||
|
# $1: file with ext acls.
|
||||||
|
convert_test_post_check_acl() {
|
||||||
|
local EXT_ACLTMP
|
||||||
|
local BTRFS_ACLTMP
|
||||||
|
|
||||||
|
EXT_ACLTMP="$1"
|
||||||
|
BTRFS_ACLTMP=$(mktemp --tmpdir btrfs-progs-convert.aclsXXXXXXX)
|
||||||
|
convert_test_acl "$BTRFS_ACLTMP"
|
||||||
|
|
||||||
|
btrfs_acl=`md5sum $BTRFS_ACLTMP | cut -f1 -d' '`
|
||||||
|
ext_acl=`md5sum $EXT_ACLTMP | cut -f1 -d' '`
|
||||||
|
|
||||||
|
if [ "$btrfs_acl" != "$ext_acl" ]
|
||||||
|
then
|
||||||
|
btrfs_acl_file=`md5sum $BTRFS_ACLTMP | cut -f2 -d' '`
|
||||||
|
ext_acl_file=`md5sum $EXT_ACLTMP | cut -f2 -d' '`
|
||||||
|
_fail "file acl failed. Mismatched BTRFS:$btrfs_acl_file:$btrfs_acl EXT:$ext_acl_file:$ext_acl"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -- $BTRFS_ACLTMP
|
||||||
|
}
|
||||||
# post conversion checks, verify md5sums
|
# post conversion checks, verify md5sums
|
||||||
# $1: file with checksums
|
# $1: file with checksums
|
||||||
|
# $2: file with permissions.
|
||||||
|
# $3: file with acl entries.
|
||||||
convert_test_post_check() {
|
convert_test_post_check() {
|
||||||
local CHECKSUMTMP
|
local CHECKSUMTMP
|
||||||
|
local EXT_PERMTMP
|
||||||
|
local EXT_ACLTMP
|
||||||
|
|
||||||
CHECKSUMTMP="$1"
|
CHECKSUMTMP="$1"
|
||||||
|
EXT_PERMTMP="$2"
|
||||||
|
EXT_ACLTMP="$3"
|
||||||
|
|
||||||
run_check_mount_test_dev
|
run_check_mount_test_dev
|
||||||
run_check_stdout $SUDO_HELPER md5sum -c "$CHECKSUMTMP" |
|
run_check_stdout $SUDO_HELPER md5sum -c "$CHECKSUMTMP" |
|
||||||
grep -q 'FAILED' && _fail "file validation failed"
|
grep -q 'FAILED' && _fail "file validation failed"
|
||||||
|
convert_test_post_check_permissions "$EXT_PERMTMP"
|
||||||
|
convert_test_post_check_acl "$EXT_ACLTMP"
|
||||||
run_check_umount_test_dev
|
run_check_umount_test_dev
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,6 +246,8 @@ convert_test() {
|
|||||||
local nodesize
|
local nodesize
|
||||||
local msg
|
local msg
|
||||||
local CHECKSUMTMP
|
local CHECKSUMTMP
|
||||||
|
local EXT_PERMTMP
|
||||||
|
local EXT_ACLTMP
|
||||||
|
|
||||||
features="$1"
|
features="$1"
|
||||||
msg="$2"
|
msg="$2"
|
||||||
@ -170,13 +257,19 @@ convert_test() {
|
|||||||
convert_test_prep_fs "$@"
|
convert_test_prep_fs "$@"
|
||||||
populate_fs
|
populate_fs
|
||||||
CHECKSUMTMP=$(mktemp --tmpdir btrfs-progs-convert.XXXXXXXXXX)
|
CHECKSUMTMP=$(mktemp --tmpdir btrfs-progs-convert.XXXXXXXXXX)
|
||||||
|
EXT_PERMTMP=$(mktemp --tmpdir btrfs-progs-convert.permXXXXXX)
|
||||||
|
EXT_ACLTMP=$(mktemp --tmpdir btrfs-progs-convert.aclsXXXXXXX)
|
||||||
convert_test_gen_checksums "$CHECKSUMTMP"
|
convert_test_gen_checksums "$CHECKSUMTMP"
|
||||||
|
convert_test_perm "$EXT_PERMTMP"
|
||||||
|
convert_test_acl "$EXT_ACLTMP"
|
||||||
|
|
||||||
run_check_umount_test_dev
|
run_check_umount_test_dev
|
||||||
|
|
||||||
convert_test_do_convert "$features" "$nodesize"
|
convert_test_do_convert "$features" "$nodesize"
|
||||||
convert_test_post_check "$CHECKSUMTMP"
|
convert_test_post_check "$CHECKSUMTMP" "$EXT_PERMTMP" "$EXT_ACLTMP"
|
||||||
rm $CHECKSUMTMP
|
rm $CHECKSUMTMP
|
||||||
|
rm $EXT_PERMTMP
|
||||||
|
rm $EXT_ACLTMP
|
||||||
|
|
||||||
convert_test_post_rollback
|
convert_test_post_rollback
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user