3
. $(dirname $0)/../include.rc
4
. $(dirname $0)/../volume.rc
5
. $(dirname $0)/../nfs.rc
7
#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST
9
# These hashes are a result of calling SuperFastHash
10
# on the corresponding folder names.
11
NAMESPACE_HASH=28153613
12
NAMESPACE2_HASH=3926991974
13
NAMESPACE3_HASH=3493960770
15
function check_brick_multiplex() {
16
local ret=$($CLI volume info|grep "cluster.brick-multiplex"|cut -d" " -f2)
17
local cnt="$(ls /var/log/glusterfs/bricks|wc -l)"
18
local bcnt="$(brick_count)"
20
if [ $bcnt -ne 1 ]; then
25
if [ $ret = "on" ] || [ $cnt -eq 1 ]; then
35
function check_samples() {
40
local GFID="$(getfattr -n trusted.gfid -e text --only-values $B0/$BRICK$FILE | xxd -p)"
41
local val="$(check_brick_multiplex)"
43
if [ $val = "Y" ]; then
47
grep -i "ns_$OP" /var/log/glusterfs/bricks/d-backends-$BRICK.log |
48
grep -- $NS_HASH | sed 's/\-//g' | grep -- $GFID
58
TEST mkdir -p $B0/${V0}{0,1,2,3,4,5,6,7,8,9}
62
TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{0,1,2,3,4,5,6,7,8}
63
TEST $CLI volume set $V0 nfs.disable off
64
TEST $CLI volume set $V0 performance.stat-prefetch off
65
TEST $CLI volume set $V0 performance.nfs.stat-prefetch off
66
TEST $CLI volume set $V0 cluster.read-subvolume-index 0
67
TEST $CLI volume set $V0 diagnostics.brick-log-level DEBUG
68
TEST $CLI volume set $V0 features.tag-namespaces on
69
TEST $CLI volume set $V0 storage.build-pgfid on
70
TEST $CLI volume start $V0
74
TEST mount_nfs $H0:/$V0 $N0 nolock;
76
################################
77
# Paths in the samples #
78
################################
82
# subvol_1 = bar, subvol_2 = foo, subvol_3 = hey
83
# Test create, write (tagged by loc, fd respectively).
84
touch $N0/namespace/{bar,foo,hey}
85
echo "garbage" > $N0/namespace/bar
86
echo "garbage" > $N0/namespace/foo
87
echo "garbage" > $N0/namespace/hey
88
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE_HASH /namespace/bar patchy0
89
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE_HASH /namespace/foo patchy3
90
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE_HASH /namespace/hey patchy6
91
EXPECT_WITHIN 10 "Y" check_samples WRITEV $NAMESPACE_HASH /namespace/bar patchy0
92
EXPECT_WITHIN 10 "Y" check_samples WRITEV $NAMESPACE_HASH /namespace/foo patchy3
93
EXPECT_WITHIN 10 "Y" check_samples WRITEV $NAMESPACE_HASH /namespace/hey patchy6
95
# Test stat (tagged by loc)
96
stat $N0/namespace/bar &> /dev/null
97
stat $N0/namespace/foo &> /dev/null
98
stat $N0/namespace/hey &> /dev/null
99
EXPECT_WITHIN 10 "Y" check_samples STAT $NAMESPACE_HASH /namespace/bar patchy0
100
EXPECT_WITHIN 10 "Y" check_samples STAT $NAMESPACE_HASH /namespace/foo patchy3
101
EXPECT_WITHIN 10 "Y" check_samples STAT $NAMESPACE_HASH /namespace/hey patchy6
103
EXPECT_WITHIN 10 "Y" umount_nfs $N0;
105
TEST mount_nfs $H0:/$V0 $N0 nolock;
107
cat $N0/namespace/bar &> /dev/null
108
EXPECT_WITHIN 10 "Y" check_samples READ $NAMESPACE_HASH /namespace/bar patchy0
110
dir $N0/namespace &> /dev/null
111
EXPECT_WITHIN 10 "Y" check_samples LOOKUP $NAMESPACE_HASH /namespace patchy0
113
mkdir -p $N0/namespace{2,3}
114
EXPECT_WITHIN 10 "Y" check_samples MKDIR $NAMESPACE2_HASH /namespace2 patchy0
115
EXPECT_WITHIN 10 "Y" check_samples MKDIR $NAMESPACE3_HASH /namespace3 patchy0
117
touch $N0/namespace2/file
118
touch $N0/namespace3/file
119
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE2_HASH /namespace2/file patchy0
120
EXPECT_WITHIN 10 "Y" check_samples CREATE $NAMESPACE3_HASH /namespace3/file patchy0
122
truncate -s 0 $N0/namespace/bar
123
EXPECT_WITHIN 10 "Y" check_samples TRUNCATE $NAMESPACE_HASH /namespace/bar patchy0
125
ln -s $N0/namespace/foo $N0/namespace/foo_link
126
EXPECT_WITHIN 10 "Y" check_samples SYMLINK $NAMESPACE_HASH /namespace/foo patchy3
128
open $N0/namespace/hey
129
EXPECT_WITHIN 10 "Y" check_samples OPEN $NAMESPACE_HASH /namespace/hey patchy6