generic/097: split user.* xattr tests to new test

Split out most of the user.* tests from 097 and move them to a new
test that only tests user.* xattrs.

This makes it possible to use this test on filesystems that can only
provide user.* xattrs such as CIFS.

Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Ronnie Sahlberg
2019-03-08 13:34:38 +10:00
committed by Eryu Guan
parent c2d149681c
commit 2780486bdd
5 changed files with 252 additions and 189 deletions
-84
View File
@@ -54,90 +54,6 @@ echo -e "\ncreate file foo"
rm -f $file
touch $file
echo -e "\nshould be no EAs for foo:"
getfattr -d $file
echo -e "\nset EA <noise,woof>:"
setfattr -n user.noise -v woof $file
echo -e "\nset EA <colour,blue>:"
setfattr -n user.colour -v blue $file
echo -e "\nset EA <size,small>:"
setfattr -n user.size -v small $file
echo -e "\nlist the EAs for foo: noise, colour, size"
getfattr -d $file
echo -e "\ncheck the list again for foo"
getfattr -d $file
echo -e "\nunmount the FS and see if EAs are persistent"
_test_cycle_mount
echo -e "\ncheck the list again for foo after umount/mount"
getfattr -d $file
echo -e "\nremove the colour EA on foo"
setfattr -x user.colour $file
echo -e "\nlist EAs for foo: noise, size"
getfattr -d $file
echo -e "\nget the value of the noise EA"
getfattr -n user.noise $file
echo -e "\nget the value of the colour EA which was removed earlier"
getfattr -n user.colour $file
echo -e "\nget the value of the size EA"
getfattr -n user.size $file
echo -e "\nlist all the EAs again: noise, size"
getfattr -d $file
echo -e "\nchange the value of the size EA from small to huge"
setfattr -n user.size -v huge $file
echo -e "\nget the size EA which should now have value huge"
getfattr -n user.size $file
echo -e "\nlist EAs: noise, size"
getfattr -d $file
echo -e "\nremove the size EA from foo"
setfattr -x user.size $file
echo -e "\nlist EAs: noise (size EA has been removed)"
getfattr -d $file
echo -e "\ntry removing non-existent EA named woof"
setfattr -x user.woof $file
echo -e "\ntry removing already removed EA size"
setfattr -x user.size $file
echo -e "\nlist EAs: noise"
getfattr -d $file
echo -e "\ntry removing already removed EA colour"
setfattr -x user.colour $file
echo -e "\nlist EAs: noise"
getfattr -d $file
echo -e "\nremove remaining EA noise"
setfattr -x user.noise $file
echo -e "\nlist EAs: should be no EAs left now"
getfattr -d $file
echo -e "\nunmount the FS and see if EAs are persistent"
_test_cycle_mount
echo -e "\nlist EAs: should still be no EAs left"
getfattr -d $file
echo -e "\n*** Test out the trusted namespace ***"
echo -e "\nset EA <trusted:colour,marone>:"
-105
View File
@@ -2,111 +2,6 @@ QA output created by 097
create file foo
should be no EAs for foo:
set EA <noise,woof>:
set EA <colour,blue>:
set EA <size,small>:
list the EAs for foo: noise, colour, size
# file: TEST_DIR/foo
user.colour="blue"
user.noise="woof"
user.size="small"
check the list again for foo
# file: TEST_DIR/foo
user.colour="blue"
user.noise="woof"
user.size="small"
unmount the FS and see if EAs are persistent
check the list again for foo after umount/mount
# file: TEST_DIR/foo
user.colour="blue"
user.noise="woof"
user.size="small"
remove the colour EA on foo
list EAs for foo: noise, size
# file: TEST_DIR/foo
user.noise="woof"
user.size="small"
get the value of the noise EA
# file: TEST_DIR/foo
user.noise="woof"
get the value of the colour EA which was removed earlier
TEST_DIR/foo: user.colour: No such attribute
get the value of the size EA
# file: TEST_DIR/foo
user.size="small"
list all the EAs again: noise, size
# file: TEST_DIR/foo
user.noise="woof"
user.size="small"
change the value of the size EA from small to huge
get the size EA which should now have value huge
# file: TEST_DIR/foo
user.size="huge"
list EAs: noise, size
# file: TEST_DIR/foo
user.noise="woof"
user.size="huge"
remove the size EA from foo
list EAs: noise (size EA has been removed)
# file: TEST_DIR/foo
user.noise="woof"
try removing non-existent EA named woof
setfattr: TEST_DIR/foo: No such attribute
try removing already removed EA size
setfattr: TEST_DIR/foo: No such attribute
list EAs: noise
# file: TEST_DIR/foo
user.noise="woof"
try removing already removed EA colour
setfattr: TEST_DIR/foo: No such attribute
list EAs: noise
# file: TEST_DIR/foo
user.noise="woof"
remove remaining EA noise
list EAs: should be no EAs left now
unmount the FS and see if EAs are persistent
list EAs: should still be no EAs left
*** Test out the trusted namespace ***
set EA <trusted:colour,marone>:
+143
View File
@@ -0,0 +1,143 @@
#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
# Copyright (c) 2017 Google, Inc. All Rights Reserved.
# Copyright (c) 2019 Red Hat Inc. All Rights Reserved.
#
# FS QA Test No. 526.
#
# Simple attr smoke tests for user EAs, dereived from generic/097.
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
file=$TEST_DIR/foo.$seq
_cleanup()
{
cd /
rm -f $tmp.*
}
getfattr()
{
_getfattr --absolute-names "$@" |& _filter_test_dir
}
setfattr()
{
$SETFATTR_PROG "$@" |& _filter_test_dir
}
# get standard environment, filters and checks
. ./common/rc
. ./common/attr
. ./common/filter
# real QA test starts here
_supported_fs generic
_supported_os Linux
_require_test
_require_attrs
# remove previous $seqres.full before test
rm -f $seqres.full
echo -e "\ncreate file foo.$seq"
rm -f $file
touch $file
echo -e "\nshould be no EAs for foo.$seq:"
getfattr -d $file
echo -e "\nset EA <NOISE,woof>:"
setfattr -n user.NOISE -v woof $file
echo -e "\nset EA <COLOUR,blue>:"
setfattr -n user.COLOUR -v blue $file
echo -e "\nset EA <SIZE,small>:"
setfattr -n user.SIZE -v small $file
echo -e "\nlist the EAs for foo.$seq: NOISE, COLOUR, SIZE"
getfattr -d $file
echo -e "\ncheck the list again for foo.$seq"
getfattr -d $file
echo -e "\nunmount the FS and see if EAs are persistent"
_test_cycle_mount
echo -e "\ncheck the list again for foo.$seq after umount/mount"
getfattr -d $file
echo -e "\nremove the COLOUR EA on foo.$seq"
setfattr -x user.COLOUR $file
echo -e "\nlist EAs for foo.$seq: NOISE, SIZE"
getfattr -d $file
echo -e "\nget the value of the NOISE EA"
getfattr -n user.NOISE $file
echo -e "\nget the value of the COLOUR EA which was removed earlier"
getfattr -n user.COLOUR $file
echo -e "\nget the value of the SIZE EA"
getfattr -n user.SIZE $file
echo -e "\nlist all the EAs again: NOISE, SIZE"
getfattr -d $file
echo -e "\nchange the value of the SIZE EA from small to huge"
setfattr -n user.SIZE -v huge $file
echo -e "\nget the SIZE EA which should now have value huge"
getfattr -n user.SIZE $file
echo -e "\nlist EAs: NOISE, SIZE"
getfattr -d $file
echo -e "\nremove the SIZE EA from foo.$seq"
setfattr -x user.SIZE $file
echo -e "\nlist EAs: NOISE (SIZE EA has been removed)"
getfattr -d $file
echo -e "\ntry removing non-existent EA named woof"
setfattr -x user.WOOF $file
echo -e "\ntry removing already removed EA SIZE"
setfattr -x user.SIZE $file
echo -e "\nlist EAs: NOISE"
getfattr -d $file
echo -e "\ntry removing already removed EA COLOUR"
setfattr -x user.COLOUR $file
echo -e "\nlist EAs: NOISE"
getfattr -d $file
echo -e "\nremove remaining EA NOISE"
setfattr -x user.NOISE $file
echo -e "\nlist EAs: should be no EAs left now"
getfattr -d $file
echo -e "\nunmount the FS and see if EAs are persistent"
_test_cycle_mount
echo -e "\nlist EAs: should still be no EAs left"
getfattr -d $file
# success, all done
status=0
exit
+108
View File
@@ -0,0 +1,108 @@
QA output created by 533
create file foo.533
should be no EAs for foo.533:
set EA <NOISE,woof>:
set EA <COLOUR,blue>:
set EA <SIZE,small>:
list the EAs for foo.533: NOISE, COLOUR, SIZE
# file: TEST_DIR/foo.533
user.COLOUR="blue"
user.NOISE="woof"
user.SIZE="small"
check the list again for foo.533
# file: TEST_DIR/foo.533
user.COLOUR="blue"
user.NOISE="woof"
user.SIZE="small"
unmount the FS and see if EAs are persistent
check the list again for foo.533 after umount/mount
# file: TEST_DIR/foo.533
user.COLOUR="blue"
user.NOISE="woof"
user.SIZE="small"
remove the COLOUR EA on foo.533
list EAs for foo.533: NOISE, SIZE
# file: TEST_DIR/foo.533
user.NOISE="woof"
user.SIZE="small"
get the value of the NOISE EA
# file: TEST_DIR/foo.533
user.NOISE="woof"
get the value of the COLOUR EA which was removed earlier
TEST_DIR/foo.533: user.COLOUR: No such attribute
get the value of the SIZE EA
# file: TEST_DIR/foo.533
user.SIZE="small"
list all the EAs again: NOISE, SIZE
# file: TEST_DIR/foo.533
user.NOISE="woof"
user.SIZE="small"
change the value of the SIZE EA from small to huge
get the SIZE EA which should now have value huge
# file: TEST_DIR/foo.533
user.SIZE="huge"
list EAs: NOISE, SIZE
# file: TEST_DIR/foo.533
user.NOISE="woof"
user.SIZE="huge"
remove the SIZE EA from foo.533
list EAs: NOISE (SIZE EA has been removed)
# file: TEST_DIR/foo.533
user.NOISE="woof"
try removing non-existent EA named woof
setfattr: TEST_DIR/foo.533: No such attribute
try removing already removed EA SIZE
setfattr: TEST_DIR/foo.533: No such attribute
list EAs: NOISE
# file: TEST_DIR/foo.533
user.NOISE="woof"
try removing already removed EA COLOUR
setfattr: TEST_DIR/foo.533: No such attribute
list EAs: NOISE
# file: TEST_DIR/foo.533
user.NOISE="woof"
remove remaining EA NOISE
list EAs: should be no EAs left now
unmount the FS and see if EAs are persistent
list EAs: should still be no EAs left
+1
View File
@@ -535,3 +535,4 @@
530 auto quick unlink
531 auto quick unlink
532 auto quick
533 auto quick attr