summaryrefslogtreecommitdiffstats
path: root/tools/regression/fstest/tests/link/00.t
diff options
context:
space:
mode:
Diffstat (limited to 'tools/regression/fstest/tests/link/00.t')
-rw-r--r--tools/regression/fstest/tests/link/00.t180
1 files changed, 61 insertions, 119 deletions
diff --git a/tools/regression/fstest/tests/link/00.t b/tools/regression/fstest/tests/link/00.t
index 3c124aa..5ff36d0 100644
--- a/tools/regression/fstest/tests/link/00.t
+++ b/tools/regression/fstest/tests/link/00.t
@@ -6,7 +6,7 @@ desc="link creates hardlinks"
dir=`dirname $0`
. ${dir}/../misc.sh
-echo "1..82"
+echo "1..217"
n0=`namegen`
n1=`namegen`
@@ -17,135 +17,77 @@ expect 0 mkdir ${n3} 0755
cdir=`pwd`
cd ${n3}
-expect 0 create ${n0} 0644
-expect regular,0644,1 lstat ${n0} type,mode,nlink
+for type in regular fifo block char socket; do
+ create_file ${type} ${n0} 0 0
+ expect ${type},1 lstat ${n0} type,nlink
-expect 0 link ${n0} ${n1}
-expect regular,0644,2 lstat ${n0} type,mode,nlink
-expect regular,0644,2 lstat ${n1} type,mode,nlink
+ expect 0 link ${n0} ${n1}
+ expect ${type},2 lstat ${n0} type,nlink
+ expect ${type},2 lstat ${n1} type,nlink
-expect 0 link ${n1} ${n2}
-expect regular,0644,3 lstat ${n0} type,mode,nlink
-expect regular,0644,3 lstat ${n1} type,mode,nlink
-expect regular,0644,3 lstat ${n2} type,mode,nlink
+ expect 0 link ${n1} ${n2}
+ expect ${type},3 lstat ${n0} type,nlink
+ expect ${type},3 lstat ${n1} type,nlink
+ expect ${type},3 lstat ${n2} type,nlink
-expect 0 chmod ${n1} 0201
-expect 0 chown ${n1} 65534 65533
+ expect 0 chmod ${n1} 0201
+ expect 0 chown ${n1} 65534 65533
-expect regular,0201,3,65534,65533 lstat ${n0} type,mode,nlink,uid,gid
-expect regular,0201,3,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
-expect regular,0201,3,65534,65533 lstat ${n2} type,mode,nlink,uid,gid
+ expect ${type},0201,3,65534,65533 lstat ${n0} type,mode,nlink,uid,gid
+ expect ${type},0201,3,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
+ expect ${type},0201,3,65534,65533 lstat ${n2} type,mode,nlink,uid,gid
-expect 0 unlink ${n0}
-expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
-expect regular,0201,2,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
-expect regular,0201,2,65534,65533 lstat ${n2} type,mode,nlink,uid,gid
+ expect 0 unlink ${n0}
+ expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
+ expect ${type},0201,2,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
+ expect ${type},0201,2,65534,65533 lstat ${n2} type,mode,nlink,uid,gid
-expect 0 unlink ${n2}
-expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
-expect regular,0201,1,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
-expect ENOENT lstat ${n2} type,mode,nlink,uid,gid
+ expect 0 unlink ${n2}
+ expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
+ expect ${type},0201,1,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
+ expect ENOENT lstat ${n2} type,mode,nlink,uid,gid
-expect 0 unlink ${n1}
-expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
-expect ENOENT lstat ${n1} type,mode,nlink,uid,gid
-expect ENOENT lstat ${n2} type,mode,nlink,uid,gid
-
-expect 0 mkfifo ${n0} 0644
-expect fifo,0644,1 lstat ${n0} type,mode,nlink
-
-expect 0 link ${n0} ${n1}
-expect fifo,0644,2 lstat ${n0} type,mode,nlink
-expect fifo,0644,2 lstat ${n1} type,mode,nlink
-
-expect 0 link ${n1} ${n2}
-expect fifo,0644,3 lstat ${n0} type,mode,nlink
-expect fifo,0644,3 lstat ${n1} type,mode,nlink
-expect fifo,0644,3 lstat ${n2} type,mode,nlink
-
-expect 0 chmod ${n1} 0201
-expect 0 chown ${n1} 65534 65533
-
-expect fifo,0201,3,65534,65533 lstat ${n0} type,mode,nlink,uid,gid
-expect fifo,0201,3,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
-expect fifo,0201,3,65534,65533 lstat ${n2} type,mode,nlink,uid,gid
-
-expect 0 unlink ${n0}
-expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
-expect fifo,0201,2,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
-expect fifo,0201,2,65534,65533 lstat ${n2} type,mode,nlink,uid,gid
-
-expect 0 unlink ${n2}
-expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
-expect fifo,0201,1,65534,65533 lstat ${n1} type,mode,nlink,uid,gid
-expect ENOENT lstat ${n2} type,mode,nlink,uid,gid
-
-expect 0 unlink ${n1}
-expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
-expect ENOENT lstat ${n1} type,mode,nlink,uid,gid
-expect ENOENT lstat ${n2} type,mode,nlink,uid,gid
+ expect 0 unlink ${n1}
+ expect ENOENT lstat ${n0} type,mode,nlink,uid,gid
+ expect ENOENT lstat ${n1} type,mode,nlink,uid,gid
+ expect ENOENT lstat ${n2} type,mode,nlink,uid,gid
+done
# successful link(2) updates ctime.
-expect 0 create ${n0} 0644
-ctime1=`${fstest} stat ${n0} ctime`
-dctime1=`${fstest} stat . ctime`
-dmtime1=`${fstest} stat . mtime`
-sleep 1
-expect 0 link ${n0} ${n1}
-ctime2=`${fstest} stat ${n0} ctime`
-test_check $ctime1 -lt $ctime2
-dctime2=`${fstest} stat . ctime`
-test_check $dctime1 -lt $dctime2
-dmtime2=`${fstest} stat . mtime`
-test_check $dctime1 -lt $dmtime2
-expect 0 unlink ${n0}
-expect 0 unlink ${n1}
-
-expect 0 mkfifo ${n0} 0644
-ctime1=`${fstest} stat ${n0} ctime`
-dctime1=`${fstest} stat . ctime`
-dmtime1=`${fstest} stat . mtime`
-sleep 1
-expect 0 link ${n0} ${n1}
-ctime2=`${fstest} stat ${n0} ctime`
-test_check $ctime1 -lt $ctime2
-dctime2=`${fstest} stat . ctime`
-test_check $dctime1 -lt $dctime2
-dmtime2=`${fstest} stat . mtime`
-test_check $dctime1 -lt $dmtime2
-expect 0 unlink ${n0}
-expect 0 unlink ${n1}
+for type in regular fifo block char socket; do
+ create_file ${type} ${n0} 0 0
+ ctime1=`${fstest} stat ${n0} ctime`
+ dctime1=`${fstest} stat . ctime`
+ dmtime1=`${fstest} stat . mtime`
+ sleep 1
+ expect 0 link ${n0} ${n1}
+ ctime2=`${fstest} stat ${n0} ctime`
+ test_check $ctime1 -lt $ctime2
+ dctime2=`${fstest} stat . ctime`
+ test_check $dctime1 -lt $dctime2
+ dmtime2=`${fstest} stat . mtime`
+ test_check $dctime1 -lt $dmtime2
+ expect 0 unlink ${n0}
+ expect 0 unlink ${n1}
+done
# unsuccessful link(2) does not update ctime.
-expect 0 create ${n0} 0644
-expect 0 -- chown ${n0} 65534 -1
-ctime1=`${fstest} stat ${n0} ctime`
-dctime1=`${fstest} stat . ctime`
-dmtime1=`${fstest} stat . mtime`
-sleep 1
-expect EACCES -u 65534 link ${n0} ${n1}
-ctime2=`${fstest} stat ${n0} ctime`
-test_check $ctime1 -eq $ctime2
-dctime2=`${fstest} stat . ctime`
-test_check $dctime1 -eq $dctime2
-dmtime2=`${fstest} stat . mtime`
-test_check $dctime1 -eq $dmtime2
-expect 0 unlink ${n0}
-
-expect 0 mkfifo ${n0} 0644
-expect 0 -- chown ${n0} 65534 -1
-ctime1=`${fstest} stat ${n0} ctime`
-dctime1=`${fstest} stat . ctime`
-dmtime1=`${fstest} stat . mtime`
-sleep 1
-expect EACCES -u 65534 link ${n0} ${n1}
-ctime2=`${fstest} stat ${n0} ctime`
-test_check $ctime1 -eq $ctime2
-dctime2=`${fstest} stat . ctime`
-test_check $dctime1 -eq $dctime2
-dmtime2=`${fstest} stat . mtime`
-test_check $dctime1 -eq $dmtime2
-expect 0 unlink ${n0}
+for type in regular fifo block char socket; do
+ create_file ${type} ${n0} 0 0
+ expect 0 -- chown ${n0} 65534 -1
+ ctime1=`${fstest} stat ${n0} ctime`
+ dctime1=`${fstest} stat . ctime`
+ dmtime1=`${fstest} stat . mtime`
+ sleep 1
+ expect EACCES -u 65534 link ${n0} ${n1}
+ ctime2=`${fstest} stat ${n0} ctime`
+ test_check $ctime1 -eq $ctime2
+ dctime2=`${fstest} stat . ctime`
+ test_check $dctime1 -eq $dctime2
+ dmtime2=`${fstest} stat . mtime`
+ test_check $dctime1 -eq $dmtime2
+ expect 0 unlink ${n0}
+done
cd ${cdir}
expect 0 rmdir ${n3}
OpenPOWER on IntegriCloud