mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-04 03:14:02 +00:00
Add unit tests for retention
Signed-off-by: Bryant G. Duffy-Ly <bduffyly@versity.com> [zab@versity.com: refactored for retention, added test cases] Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
committed by
Zach Brown
parent
fb5331a1d9
commit
460f3ce503
28
tests/golden/retention-basic
Normal file
28
tests/golden/retention-basic
Normal file
@@ -0,0 +1,28 @@
|
||||
== setting retention on dir fails
|
||||
attr_x ioctl failed on '/mnt/test/test/retention-basic': Invalid argument (22)
|
||||
scoutfs: set-attr-x failed: Invalid argument (22)
|
||||
== set retention
|
||||
== get-attr-x shows retention
|
||||
1
|
||||
== unpriv can't clear retention
|
||||
attr_x ioctl failed on '/mnt/test/test/retention-basic/file-1': Operation not permitted (1)
|
||||
scoutfs: set-attr-x failed: Operation not permitted (1)
|
||||
== can set hidden scoutfs xattr in retention
|
||||
== setting user. xattr fails in retention
|
||||
setfattr: /mnt/test/test/retention-basic/file-1: Operation not permitted
|
||||
== file deletion fails in retention
|
||||
rm: cannot remove '/mnt/test/test/retention-basic/file-1': Operation not permitted
|
||||
== file rename fails in retention
|
||||
mv: cannot move '/mnt/test/test/retention-basic/file-1' to '/mnt/test/test/retention-basic/file-2': Operation not permitted
|
||||
== file write fails in retention
|
||||
date: write error: Operation not permitted
|
||||
== file truncate fails in retention
|
||||
truncate: failed to truncate '/mnt/test/test/retention-basic/file-1' at 0 bytes: Operation not permitted
|
||||
== setattr fails in retention
|
||||
touch: setting times of '/mnt/test/test/retention-basic/file-1': Operation not permitted
|
||||
== clear retention
|
||||
== file write
|
||||
== file rename
|
||||
== setattr
|
||||
== xattr deletion
|
||||
== cleanup
|
||||
@@ -18,6 +18,7 @@ enospc.sh
|
||||
srch-safe-merge-pos.sh
|
||||
srch-basic-functionality.sh
|
||||
simple-xattr-unit.sh
|
||||
retention-basic.sh
|
||||
totl-xattr-tag.sh
|
||||
lock-refleak.sh
|
||||
lock-shrink-consistency.sh
|
||||
|
||||
57
tests/tests/retention-basic.sh
Normal file
57
tests/tests/retention-basic.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
t_require_commands scoutfs touch rm setfattr
|
||||
|
||||
touch "$T_D0/file-1"
|
||||
|
||||
echo "== setting retention on dir fails"
|
||||
scoutfs set-attr-x -t 1 "$T_D0" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== set retention"
|
||||
scoutfs set-attr-x -t 1 "$T_D0/file-1"
|
||||
|
||||
echo "== get-attr-x shows retention"
|
||||
scoutfs get-attr-x -t "$T_D0/file-1"
|
||||
|
||||
echo "== unpriv can't clear retention"
|
||||
setpriv --ruid=12345 --euid=12345 scoutfs set-attr-x -t 0 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== can set hidden scoutfs xattr in retention"
|
||||
setfattr -n scoutfs.hide.srch.retention_test -v val "$T_D0/file-1"
|
||||
|
||||
echo "== setting user. xattr fails in retention"
|
||||
setfattr -n user.retention_test -v val "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file deletion fails in retention"
|
||||
rm -f "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file rename fails in retention"
|
||||
mv $T_D0/file-1 $T_D0/file-2 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file write fails in retention"
|
||||
date >> $T_D0/file-1
|
||||
|
||||
echo "== file truncate fails in retention"
|
||||
truncate -s 0 $T_D0/file-1 2>&1 | t_filter_fs
|
||||
|
||||
echo "== setattr fails in retention"
|
||||
touch $T_D0/file-1 2>&1 | t_filter_fs
|
||||
|
||||
echo "== clear retention"
|
||||
scoutfs set-attr-x -t 0 "$T_D0/file-1"
|
||||
|
||||
echo "== file write"
|
||||
date >> $T_D0/file-1
|
||||
|
||||
echo "== file rename"
|
||||
mv $T_D0/file-1 $T_D0/file-2
|
||||
mv $T_D0/file-2 $T_D0/file-1
|
||||
|
||||
echo "== setattr"
|
||||
touch $T_D0/file-1 2>&1 | t_filter_fs
|
||||
|
||||
echo "== xattr deletion"
|
||||
setfattr -x scoutfs.hide.srch.retention_test "$T_D0/file-1"
|
||||
|
||||
echo "== cleanup"
|
||||
rm -f "$T_D0/file-1"
|
||||
|
||||
t_pass
|
||||
Reference in New Issue
Block a user