mirror of
https://github.com/versity/scoutfs.git
synced 2026-08-15 19:56:36 +00:00
Add unit tests for worm
Signed-off-by: Bryant G. Duffy-Ly <bduffyly@versity.com> [zab@versity.com: added test cases, reorganized a little] Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
committed by
Zach Brown
parent
4c46a834f8
commit
a423ac90f5
@@ -0,0 +1,53 @@
|
||||
== worm xattr creation without .hide. fails
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== worm xattr creation on dir fails
|
||||
setfattr: /mnt/test/test/worm-xattr-unit: Invalid argument
|
||||
== worm xattr creation
|
||||
== get correct parsed timespec value
|
||||
== hidden scoutfs xattrs before expire
|
||||
== user xattr creation before expire fails
|
||||
setfattr: /mnt/test.0/test/worm-xattr-unit/file-1: Permission denied
|
||||
== worm xattr deletion before expire fails
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Permission denied
|
||||
== worm xattr update before expire fails
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Permission denied
|
||||
== other worm xattr create before expire fails
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Permission denied
|
||||
== file deletion before expire fails
|
||||
rm: cannot remove ‘/mnt/test/test/worm-xattr-unit/file-1’: Permission denied
|
||||
== file rename before expire fails
|
||||
mv: cannot move ‘/mnt/test/test/worm-xattr-unit/file-1’ to ‘/mnt/test/test/worm-xattr-unit/file-2’: Permission denied
|
||||
== file write before expire fails
|
||||
date: write error: Permission denied
|
||||
== file truncate before expire fails
|
||||
truncate: failed to truncate ‘/mnt/test/test/worm-xattr-unit/file-1’ at 0 bytes: Permission denied
|
||||
== file inode update before expire fails
|
||||
touch: setting times of ‘/mnt/test/test/worm-xattr-unit/file-1’: Permission denied
|
||||
== wait until expiration
|
||||
== file write after expire
|
||||
== file rename after expire
|
||||
== other worm xattr create after expire fails
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== xattr deletion after expire
|
||||
== invalid all zero expire value
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== invalid non integer expire value
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== invalid only dots dots expire value
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== invalid mixed dots secs expire value
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== invalid (u32)(u64) nsecs expire value
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== invalid negative (signed)(u64) secs expire value
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
setfattr: /mnt/test/test/worm-xattr-unit/file-1: Invalid argument
|
||||
== cleanup
|
||||
@@ -12,6 +12,7 @@ move-blocks.sh
|
||||
enospc.sh
|
||||
srch-basic-functionality.sh
|
||||
simple-xattr-unit.sh
|
||||
worm-xattr-unit.sh
|
||||
totl-xattr-tag.sh
|
||||
lock-refleak.sh
|
||||
lock-shrink-consistency.sh
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
t_require_commands touch rm setfattr
|
||||
|
||||
touch "$T_D0/file-1"
|
||||
SECS=$(date '+%s')
|
||||
NSECS=$(date '+%N')
|
||||
DELAY=10
|
||||
EXP=$((SECS + DELAY))
|
||||
|
||||
echo "== worm xattr creation without .hide. fails"
|
||||
setfattr -n scoutfs.worm.level1_expire -v $EXP.$NSECS "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== worm xattr creation on dir fails"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v $EXP.$NSECS "$T_D0" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== worm xattr creation"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v $EXP.$NSECS "$T_D0/file-1"
|
||||
|
||||
echo "== get correct parsed timespec value"
|
||||
diff -u --ignore-all-space <(echo "$EXP.$NSECS") <(getfattr --absolute-names --only-values -n scoutfs.hide.worm.level1_expire -m - "$T_D0/file-1")
|
||||
|
||||
echo "== hidden scoutfs xattrs before expire"
|
||||
setfattr -n scoutfs.hide.srch.worm_test -v val "$T_D0/file-1"
|
||||
|
||||
echo "== user xattr creation before expire fails"
|
||||
setfattr -n user.worm_test -v val "$T_D0/file-1"
|
||||
|
||||
echo "== worm xattr deletion before expire fails"
|
||||
setfattr -x scoutfs.hide.worm.level1_expire "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== worm xattr update before expire fails"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v $SECS.$NSECS "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== other worm xattr create before expire fails"
|
||||
setfattr -n scoutfs.hide.worm.other.level1_expire -v 123.456 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file deletion before expire fails"
|
||||
rm -f "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file rename before expire fails"
|
||||
mv $T_D0/file-1 $T_D0/file-2 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file write before expire fails"
|
||||
date >> $T_D0/file-1
|
||||
|
||||
echo "== file truncate before expire fails"
|
||||
truncate -s 0 $T_D0/file-1 2>&1 | t_filter_fs
|
||||
|
||||
echo "== file inode update before expire fails"
|
||||
touch $T_D0/file-1 2>&1 | t_filter_fs
|
||||
|
||||
echo "== wait until expiration"
|
||||
sleep $((DELAY + 1))
|
||||
|
||||
echo "== file write after expire"
|
||||
date >> $T_D0/file-1
|
||||
|
||||
echo "== file rename after expire"
|
||||
mv $T_D0/file-1 $T_D0/file-2
|
||||
mv $T_D0/file-2 $T_D0/file-1
|
||||
|
||||
echo "== other worm xattr create after expire fails"
|
||||
setfattr -n scoutfs.hide.worm.other.level1_expire -v 123.456 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== xattr deletion after expire"
|
||||
setfattr -x scoutfs.hide.worm.level1_expire "$T_D0/file-1"
|
||||
|
||||
echo "== invalid all zero expire value"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 0.0 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== invalid non integer expire value"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v a.a "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== invalid only dots dots expire value"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v . "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v .. "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v ... "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== invalid mixed dots secs expire value"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 11 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v .11 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 11. "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v .11. "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v .1.1. "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== invalid (u32)(u64) nsecs expire value"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 1.1000000000 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 1.4294967296 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 1.18446744073709551615 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== invalid negative (signed)(u64) secs expire value"
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 9223372036854775808.1 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
setfattr -n scoutfs.hide.worm.level1_expire -v 18446744073709551615.1 "$T_D0/file-1" 2>&1 | t_filter_fs
|
||||
|
||||
echo "== cleanup"
|
||||
rm -f "$T_D0/file-1"
|
||||
|
||||
t_pass
|
||||
Reference in New Issue
Block a user