diff options
Diffstat (limited to 'tests/gfid2path')
| -rw-r--r-- | tests/gfid2path/block-mount-access.t | 51 | ||||
| -rw-r--r-- | tests/gfid2path/get-gfid-to-path.t | 72 | ||||
| -rw-r--r-- | tests/gfid2path/gfid2path_fuse.t | 166 | ||||
| -rw-r--r-- | tests/gfid2path/gfid2path_nfs.t | 152 |
4 files changed, 441 insertions, 0 deletions
diff --git a/tests/gfid2path/block-mount-access.t b/tests/gfid2path/block-mount-access.t new file mode 100644 index 00000000000..b1726ad9604 --- /dev/null +++ b/tests/gfid2path/block-mount-access.t @@ -0,0 +1,51 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +. $(dirname $0)/../afr.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd + +## Create a 2*2 volume +TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; + +## Start the volume +TEST $CLI volume start $V0 +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status +EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0 +EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1 +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0; + +## Mount the volume +TEST $GFS --volfile-server=$H0 --volfile-id=$V0 $M0; + +#CREATE +fname=$M0/file1 +touch $fname; +backpath=$B0/${V0}1/file1 + +pgfid="00000000-0000-0000-0000-000000000001" + +#Check for the presence of xattr +key="trusted.gfid2path" +gfid2path_xattr=$(getfattr -h -d -m. $backpath 2>/dev/null | grep -a $key | cut -f1 -d'=') + +#Check getxattr +TEST ! getfattr -h -n $gfid2path_xattr $M0/file1 + +#Check listgetxattr +EXPECT_NOT $gfid2path_xattr get_xattr_key $key $M0/file1 + +#Check removexattr +TEST ! setfattr -h -x $gfid2path_xattr $M0/file1 + +#Check setxattr +TEST ! setfattr -h -n "trusted.gfid2path.d16e15bafe6e4257" -v "$pgfid/file2" $M0/file1 + +#Cleanup +cleanup; diff --git a/tests/gfid2path/get-gfid-to-path.t b/tests/gfid2path/get-gfid-to-path.t new file mode 100644 index 00000000000..dea95f4c9f8 --- /dev/null +++ b/tests/gfid2path/get-gfid-to-path.t @@ -0,0 +1,72 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +. $(dirname $0)/../afr.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd + +## Create a 1*2 volume +TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; + +## Start the volume +TEST $CLI volume start $V0 +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status +EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 0 +EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_in_shd $V0 1 + +## Mount the volume +TEST $GFS --volfile-server=$H0 --aux-gfid-mount --volfile-id=$V0 $M0; + +root_gfid="00000000-0000-0000-0000-000000000001" + +#Check for ROOT +EXPECT "/" get_gfid2path $M0/.gfid/$root_gfid + +#CREATE +fname=$M0/file1 +touch $fname; + +#Get gfid of file1 +gfid=$(getfattr -h --only-values -n glusterfs.gfid.string $M0/file1) + +#Get path from virt xattr +EXPECT "/file1" get_gfid2path $M0/.gfid/$gfid + +#Create hardlink and get path +ln $fname $M0/hl_file1 +EXPECT "/file1" get_gfid2path $M0/.gfid/$gfid +EXPECT "/hl_file1" get_gfid2path $M0/.gfid/$gfid + +#Rename and get path +mv $fname $M0/rn_file1 +EXPECT "/hl_file1" get_gfid2path $M0/.gfid/$gfid +EXPECT "/rn_file1" get_gfid2path $M0/.gfid/$gfid + +#Create symlink and get path +ln -s $fname $M0/sym_file1 +gfid=$(getfattr -h --only-values -n glusterfs.gfid.string $M0/sym_file1) +EXPECT "/sym_file1" get_gfid2path $M0/.gfid/$gfid + +#Create dir and get path +mkdir -p $M0/dir1/dir2 +gfid=$(getfattr -h --only-values -n glusterfs.gfid.string $M0/dir1/dir2) +EXPECT "/dir1/dir2" get_gfid2path $M0/.gfid/$gfid + +#Create file under dir2 and get path +touch $M0/dir1/dir2/file1 +gfid=$(getfattr -h --only-values -n glusterfs.gfid.string $M0/dir1/dir2/file1) +EXPECT "/dir1/dir2/file1" get_gfid2path $M0/.gfid/$gfid + +#Create hardlink under dir2 and get path +ln $M0/dir1/dir2/file1 $M0/dir1/hl_file1 +gfid=$(getfattr -h --only-values -n glusterfs.gfid.string $M0/dir1/dir2/file1) +EXPECT "/dir1/dir2/file1" get_gfid2path $M0/.gfid/$gfid +EXPECT "/dir1/hl_file1" get_gfid2path $M0/.gfid/$gfid + +cleanup; diff --git a/tests/gfid2path/gfid2path_fuse.t b/tests/gfid2path/gfid2path_fuse.t new file mode 100644 index 00000000000..d0fe1fc16ae --- /dev/null +++ b/tests/gfid2path/gfid2path_fuse.t @@ -0,0 +1,166 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +CLI_SETGFID2PATH="gluster-setgfid2path"; + +cleanup; + +XXHSUM_SOURCE="$(dirname $0)/../../contrib/xxhash/xxhsum.c $(dirname $0)/../../contrib/xxhash/xxhash.c" +XXHSUM_EXEC=$(dirname $0)/xxhsum + +## Build xxhsum C source +build_tester $XXHSUM_SOURCE -o $XXHSUM_EXEC -I$(dirname $0)/../../contrib/xxhash +TEST [ -e $XXHSUM_EXEC ] + +TEST glusterd +TEST pidof glusterd + +## Create a single brick volume (B=1) +TEST $CLI volume create $V0 $H0:$B0/${V0}1; +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; +EXPECT '1' brick_count $V0 + +## Start the volume +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +## Mount the volume +TEST $GFS --volfile-server=$H0 --volfile-id=$V0 $M0; + +## disable gfid2path +TEST $CLI volume set $V0 gfid2path disable + +pgfid="00000000-0000-0000-0000-000000000001" +xxh64_file=$B0/${V0}1/xxh64_file + +# Create a file before enabling gfid2path +fname=$M0/before_file1 +touch $fname; +backpath=$B0/${V0}1/before_file1 + +# Set gfid2path xattr +TEST $CLI_SETGFID2PATH $backpath + +#Check for the presence of xattr +pgfid_bname=$pgfid/before_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +## enable gfid2path +TEST $CLI volume set $V0 gfid2path enable + +#CREATE +fname=$M0/file1 +touch $fname; +backpath=$B0/${V0}1/file1 + +#Check for the presence of xattr +pgfid_bname=$pgfid/file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#MKNOD +fname=$M0/mknod_file1 +mknod $fname p; +backpath=$B0/${V0}1/mknod_file1 + +#Check for the presence of xattr +pgfid_bname=$pgfid/mknod_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#LINK +fname1=$M0/file1 +fname2=$M0/hl_file1 +ln $fname1 $fname2 +backpath1=$B0/${V0}1/file1 +backpath2=$B0/${V0}1/hl_file1 + +#Check for the presence of two xattrs +pgfid_bname=$pgfid/file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath1 + +pgfid_bname=$pgfid/hl_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath2 + +#RENAME +fname1=$M0/file1 +fname2=$M0/rn_file1 +mv $fname1 $fname2 +backpath=$B0/${V0}1/rn_file1 + +#Check for the presence of new xattr +pgfid_bname=$pgfid/file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT_NOT $pgfid_bname get_text_xattr $key $backpath + +pgfid_bname=$pgfid/rn_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#UNLINK +fname1=$M0/hl_file1 +rm -f $fname1 +fname2=$M0/rn_file1 +backpath=$B0/${V0}1/rn_file1 + +#Check removal of xattr +pgfid_bname=$pgfid/hl_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT_NOT $pgfid_bname get_text_xattr $key $backpath + +pgfid_bname=$pgfid/rn_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#SYMLINK +fname=rn_file1 +sym_fname=$M0/sym_file1 +ln -s $fname $sym_fname +backpath=$B0/${V0}1/sym_file1 + +#Check for the presence of xattr +pgfid_bname=$pgfid/sym_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#FINAL UNLINK +fname=$M0/rn_file1 +sym_fname=$M0/sym_file1 +mknod_fname=$M0/mknod_file1 + +rm -f $fname +rm -f $sym_fname +rm -f $mknod_fname +TEST ! stat $fname +TEST ! stat $sym_fname +TEST ! stat $mknod_fname + +#Cleanups +rm -f $STUB_EXEC +cleanup; diff --git a/tests/gfid2path/gfid2path_nfs.t b/tests/gfid2path/gfid2path_nfs.t new file mode 100644 index 00000000000..d1ea7df2f4d --- /dev/null +++ b/tests/gfid2path/gfid2path_nfs.t @@ -0,0 +1,152 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +. $(dirname $0)/../nfs.rc + +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + +cleanup; + +XXHSUM_SOURCE="$(dirname $0)/../../contrib/xxhash/xxhsum.c $(dirname $0)/../../contrib/xxhash/xxhash.c" +XXHSUM_EXEC=$(dirname $0)/xxhsum + +## Build xxhsum C source +build_tester $XXHSUM_SOURCE -o $XXHSUM_EXEC -I$(dirname $0)/../../contrib/xxhash +TEST [ -e $XXHSUM_EXEC ] + +TEST glusterd +TEST pidof glusterd + +## Create a single brick volume (B=1) +TEST $CLI volume create $V0 $H0:$B0/${V0}1; +EXPECT "$V0" volinfo_field $V0 'Volume Name'; +EXPECT 'Created' volinfo_field $V0 'Status'; +EXPECT '1' brick_count $V0 + +TEST $CLI volume set $V0 nfs.disable false + +## Start the volume +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status'; + +## Wait for volume to register with rpc.mountd +EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available + +## Mount the volume +TEST mount_nfs $H0:/$V0 $N0 nolock; + + +pgfid="00000000-0000-0000-0000-000000000001" +xxh64_file=$B0/${V0}1/xxh64_file + +#CREATE +fname=$N0/file1 +touch $fname; +backpath=$B0/${V0}1/file1 + +#Check for the presence of xattr +pgfid_bname=$pgfid/file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#MKNOD +fname=$N0/mknod_file1 +mknod $fname p; +backpath=$B0/${V0}1/mknod_file1 + +#Check for the presence of xattr +pgfid_bname=$pgfid/mknod_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#LINK +fname1=$N0/file1 +fname2=$N0/hl_file1 +ln $fname1 $fname2 +backpath1=$B0/${V0}1/file1 +backpath2=$B0/${V0}1/hl_file1 + +#Check for the presence of two xattrs +pgfid_bname=$pgfid/file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath1 + +pgfid_bname=$pgfid/hl_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath2 + +#RENAME +fname1=$N0/file1 +fname2=$N0/rn_file1 +mv $fname1 $fname2 +backpath=$B0/${V0}1/rn_file1 + +#Check for the presence of new xattr +pgfid_bname=$pgfid/file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT_NOT $pgfid_bname get_text_xattr $key $backpath + +pgfid_bname=$pgfid/rn_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#UNLINK +fname1=$N0/hl_file1 +rm -f $fname1 +fname2=$N0/rn_file1 +backpath=$B0/${V0}1/rn_file1 + +#Check removal of xattr +pgfid_bname=$pgfid/hl_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT_NOT $pgfid_bname get_text_xattr $key $backpath + +pgfid_bname=$pgfid/rn_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#SYMLINK +fname=rn_file1 +sym_fname=$N0/sym_file1 +ln -s $fname $sym_fname +backpath=$B0/${V0}1/sym_file1 + +#Check for the presence of xattr +pgfid_bname=$pgfid/sym_file1 +echo -n $pgfid_bname > $xxh64_file +xxh64sum=$(($XXHSUM_EXEC $xxh64_file) 2>/dev/null | awk '{print $1}') +key="trusted.gfid2path.$xxh64sum" +EXPECT $pgfid_bname get_text_xattr $key $backpath + +#FINAL UNLINK +fname=$N0/rn_file1 +sym_fname=$N0/sym_file1 +mknod_fname=$N0/mknod_file1 + +rm -f $fname +rm -f $sym_fname +rm -f $mknod_fname +TEST ! stat $fname +TEST ! stat $sym_fname +TEST ! stat $mknod_fname + +#Cleanups +rm -f $STUB_EXEC +cleanup; |
