svn commit: r210984 - in head/tools/regression/fstest/tests: chmod chown granular link mkdir mkfifo open rename rmdir symlink truncate unlink

Pawel Jakub Dawidek pjd at FreeBSD.org
Fri Aug 6 23:58:54 UTC 2010


Author: pjd
Date: Fri Aug  6 23:58:54 2010
New Revision: 210984
URL: http://svn.freebsd.org/changeset/base/210984

Log:
  Various cleanups, mostly to make the test work on FreeBSD/ZFS.

Modified:
  head/tools/regression/fstest/tests/chmod/08.t
  head/tools/regression/fstest/tests/chmod/09.t
  head/tools/regression/fstest/tests/chown/08.t
  head/tools/regression/fstest/tests/chown/09.t
  head/tools/regression/fstest/tests/granular/00.t
  head/tools/regression/fstest/tests/granular/01.t
  head/tools/regression/fstest/tests/granular/02.t
  head/tools/regression/fstest/tests/granular/03.t
  head/tools/regression/fstest/tests/granular/04.t
  head/tools/regression/fstest/tests/granular/05.t
  head/tools/regression/fstest/tests/link/05.t
  head/tools/regression/fstest/tests/link/12.t
  head/tools/regression/fstest/tests/link/13.t
  head/tools/regression/fstest/tests/link/14.t
  head/tools/regression/fstest/tests/link/15.t
  head/tools/regression/fstest/tests/link/16.t
  head/tools/regression/fstest/tests/mkdir/08.t
  head/tools/regression/fstest/tests/mkdir/09.t
  head/tools/regression/fstest/tests/mkdir/11.t
  head/tools/regression/fstest/tests/mkfifo/08.t
  head/tools/regression/fstest/tests/mkfifo/10.t
  head/tools/regression/fstest/tests/mkfifo/11.t
  head/tools/regression/fstest/tests/open/09.t
  head/tools/regression/fstest/tests/open/10.t
  head/tools/regression/fstest/tests/open/11.t
  head/tools/regression/fstest/tests/open/14.t
  head/tools/regression/fstest/tests/open/15.t
  head/tools/regression/fstest/tests/open/18.t
  head/tools/regression/fstest/tests/open/19.t
  head/tools/regression/fstest/tests/open/20.t
  head/tools/regression/fstest/tests/rename/06.t
  head/tools/regression/fstest/tests/rename/07.t
  head/tools/regression/fstest/tests/rename/08.t
  head/tools/regression/fstest/tests/rename/15.t
  head/tools/regression/fstest/tests/rename/16.t
  head/tools/regression/fstest/tests/rmdir/09.t
  head/tools/regression/fstest/tests/rmdir/10.t
  head/tools/regression/fstest/tests/rmdir/13.t
  head/tools/regression/fstest/tests/rmdir/14.t
  head/tools/regression/fstest/tests/symlink/09.t
  head/tools/regression/fstest/tests/symlink/10.t
  head/tools/regression/fstest/tests/symlink/11.t
  head/tools/regression/fstest/tests/truncate/08.t
  head/tools/regression/fstest/tests/truncate/10.t
  head/tools/regression/fstest/tests/truncate/11.t
  head/tools/regression/fstest/tests/unlink/09.t
  head/tools/regression/fstest/tests/unlink/10.t
  head/tools/regression/fstest/tests/unlink/12.t

Modified: head/tools/regression/fstest/tests/chmod/08.t
==============================================================================
--- head/tools/regression/fstest/tests/chmod/08.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/chmod/08.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -8,7 +8,16 @@ dir=`dirname $0`
 
 require chflags
 
-echo "1..40"
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	echo "1..22"
+	;;
+FreeBSD:UFS)
+	echo "1..44"
+	;;
+*)
+	quick_exit
+esac
 
 n0=`namegen`
 
@@ -18,30 +27,7 @@ expect EPERM chmod ${n0} 0600
 expect 0644 stat ${n0} mode
 expect 0 chflags ${n0} none
 expect 0 chmod ${n0} 0600
-expect 0 unlink ${n0}
-
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} UF_IMMUTABLE
-expect EPERM chmod ${n0} 0600
-expect 0644 stat ${n0} mode
-expect 0 chflags ${n0} none
-expect 0 chmod ${n0} 0600
-expect 0 unlink ${n0}
-
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} SF_APPEND
-expect EPERM chmod ${n0} 0600
-expect 0644 stat ${n0} mode
-expect 0 chflags ${n0} none
-expect 0 chmod ${n0} 0600
-expect 0 unlink ${n0}
-
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} UF_APPEND
-expect EPERM chmod ${n0} 0600
-expect 0644 stat ${n0} mode
-expect 0 chflags ${n0} none
-expect 0 chmod ${n0} 0600
+expect 0600 stat ${n0} mode
 expect 0 unlink ${n0}
 
 expect 0 create ${n0} 0644
@@ -51,9 +37,50 @@ expect 0600 stat ${n0} mode
 expect 0 chflags ${n0} none
 expect 0 unlink ${n0}
 
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} UF_NOUNLINK
-expect 0 chmod ${n0} 0600
-expect 0600 stat ${n0} mode
-expect 0 chflags ${n0} none
-expect 0 unlink ${n0}
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} SF_APPEND
+	expect 0 chmod ${n0} 0600
+	expect 0600 stat ${n0} mode
+	expect 0 chflags ${n0} none
+	expect 0 chmod ${n0} 0600
+	expect 0600 stat ${n0} mode
+	expect 0 unlink ${n0}
+	;;
+FreeBSD:UFS)
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} SF_APPEND
+	expect EPERM chmod ${n0} 0600
+	expect 0644 stat ${n0} mode
+	expect 0 chflags ${n0} none
+	expect 0 chmod ${n0} 0600
+	expect 0600 stat ${n0} mode
+	expect 0 unlink ${n0}
+
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} UF_IMMUTABLE
+	expect EPERM chmod ${n0} 0600
+	expect 0644 stat ${n0} mode
+	expect 0 chflags ${n0} none
+	expect 0 chmod ${n0} 0600
+	expect 0600 stat ${n0} mode
+	expect 0 unlink ${n0}
+
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} UF_NOUNLINK
+	expect 0 chmod ${n0} 0600
+	expect 0600 stat ${n0} mode
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n0}
+
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} UF_APPEND
+	expect EPERM chmod ${n0} 0600
+	expect 0644 stat ${n0} mode
+	expect 0 chflags ${n0} none
+	expect 0 chmod ${n0} 0600
+	expect 0600 stat ${n0} mode
+	expect 0 unlink ${n0}
+	;;
+esac

Modified: head/tools/regression/fstest/tests/chmod/09.t
==============================================================================
--- head/tools/regression/fstest/tests/chmod/09.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/chmod/09.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,32 +6,27 @@ desc="chmod returns EROFS if the named f
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}:${fs}" in
-FreeBSD:UFS)
-	echo "1..10"
+[ "${os}:${fs}" = "FreeBSD:UFS" ] || quick_exit
 
-	n0=`namegen`
-	n1=`namegen`
+echo "1..10"
 
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 1m`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 create ${n0}/${n1} 0644
-	expect 0 chmod ${n0}/${n1} 0640
-	expect 0640 stat ${n0}/${n1} mode
-	mount -ur /dev/md${n}
-	expect EROFS chmod ${n0}/${n1} 0600
-	expect 0640 stat ${n0}/${n1} mode
-	mount -uw /dev/md${n}
-	expect 0 chmod ${n0}/${n1} 0600
-	expect 0600 stat ${n0}/${n1} mode
-	expect 0 unlink ${n0}/${n1}
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+n0=`namegen`
+n1=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 1m`
+newfs /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 create ${n0}/${n1} 0644
+expect 0 chmod ${n0}/${n1} 0640
+expect 0640 stat ${n0}/${n1} mode
+mount -ur /dev/md${n}
+expect EROFS chmod ${n0}/${n1} 0600
+expect 0640 stat ${n0}/${n1} mode
+mount -uw /dev/md${n}
+expect 0 chmod ${n0}/${n1} 0600
+expect 0600 stat ${n0}/${n1} mode
+expect 0 unlink ${n0}/${n1}
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/chown/08.t
==============================================================================
--- head/tools/regression/fstest/tests/chown/08.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/chown/08.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -8,46 +8,77 @@ dir=`dirname $0`
 
 require chflags
 
-echo "1..34"
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	echo "1..20"
+	;;
+FreeBSD:UFS)
+	echo "1..44"
+	;;
+*)
+	quick_exit
+esac
 
 n0=`namegen`
 
 expect 0 create ${n0} 0644
 expect 0 chflags ${n0} SF_IMMUTABLE
 expect EPERM chown ${n0} 65534 65534
+expect 0,0 stat ${n0} uid,gid
 expect 0 chflags ${n0} none
 expect 0 chown ${n0} 65534 65534
-expect 0 unlink ${n0}
-
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} UF_IMMUTABLE
-expect EPERM chown ${n0} 65534 65534
-expect 0 chflags ${n0} none
-expect 0 chown ${n0} 65534 65534
-expect 0 unlink ${n0}
-
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} SF_APPEND
-expect EPERM chown ${n0} 65534 65534
-expect 0 chflags ${n0} none
-expect 0 chown ${n0} 65534 65534
-expect 0 unlink ${n0}
-
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} UF_APPEND
-expect EPERM chown ${n0} 65534 65534
-expect 0 chflags ${n0} none
-expect 0 chown ${n0} 65534 65534
+expect 65534,65534 stat ${n0} uid,gid
 expect 0 unlink ${n0}
 
 expect 0 create ${n0} 0644
 expect 0 chflags ${n0} SF_NOUNLINK
 expect 0 chown ${n0} 65534 65534
+expect 65534,65534 stat ${n0} uid,gid
 expect 0 chflags ${n0} none
 expect 0 unlink ${n0}
 
-expect 0 create ${n0} 0644
-expect 0 chflags ${n0} UF_NOUNLINK
-expect 0 chown ${n0} 65534 65534
-expect 0 chflags ${n0} none
-expect 0 unlink ${n0}
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} SF_APPEND
+	expect 0 chown ${n0} 65534 65534
+	expect 65534,65534 stat ${n0} uid,gid
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n0}
+	;;
+FreeBSD:UFS)
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} SF_APPEND
+	expect EPERM chown ${n0} 65534 65534
+	expect 0,0 stat ${n0} uid,gid
+	expect 0 chflags ${n0} none
+	expect 0 chown ${n0} 65534 65534
+	expect 65534,65534 stat ${n0} uid,gid
+	expect 0 unlink ${n0}
+
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} UF_IMMUTABLE
+	expect EPERM chown ${n0} 65534 65534
+	expect 0,0 stat ${n0} uid,gid
+	expect 0 chflags ${n0} none
+	expect 0 chown ${n0} 65534 65534
+	expect 65534,65534 stat ${n0} uid,gid
+	expect 0 unlink ${n0}
+
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} UF_NOUNLINK
+	expect 0 chown ${n0} 65534 65534
+	expect 65534,65534 stat ${n0} uid,gid
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n0}
+
+	expect 0 create ${n0} 0644
+	expect 0 chflags ${n0} UF_APPEND
+	expect EPERM chown ${n0} 65534 65534
+	expect 0,0 stat ${n0} uid,gid
+	expect 0 chflags ${n0} none
+	expect 0 chown ${n0} 65534 65534
+	expect 65534,65534 stat ${n0} uid,gid
+	expect 0 unlink ${n0}
+	;;
+esac

Modified: head/tools/regression/fstest/tests/chown/09.t
==============================================================================
--- head/tools/regression/fstest/tests/chown/09.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/chown/09.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,32 +6,27 @@ desc="chown returns EROFS if the named f
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}:{fs}" in
-FreeBSD:UFS)
-	echo "1..10"
+[ "${os}:${fs}" = "FreeBSD:UFS" ] || quick_exit
 
-	n0=`namegen`
-	n1=`namegen`
+echo "1..10"
 
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 1m`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 create ${n0}/${n1} 0644
-	expect 0 chown ${n0}/${n1} 65534 65534
-	expect 65534,65534 stat ${n0}/${n1} uid,gid
-	mount -ur /dev/md${n}
-	expect EROFS chown ${n0}/${n1} 65533 65533
-	expect 65534,65534 stat ${n0}/${n1} uid,gid
-	mount -uw /dev/md${n}
-	expect 0 chown ${n0}/${n1} 65533 65533
-	expect 65533,65533 stat ${n0}/${n1} uid,gid
-	expect 0 unlink ${n0}/${n1}
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+n0=`namegen`
+n1=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 1m`
+newfs /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 create ${n0}/${n1} 0644
+expect 0 chown ${n0}/${n1} 65534 65534
+expect 65534,65534 stat ${n0}/${n1} uid,gid
+mount -ur /dev/md${n}
+expect EROFS chown ${n0}/${n1} 65533 65533
+expect 65534,65534 stat ${n0}/${n1} uid,gid
+mount -uw /dev/md${n}
+expect 0 chown ${n0}/${n1} 65533 65533
+expect 65533,65533 stat ${n0}/${n1} uid,gid
+expect 0 unlink ${n0}/${n1}
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/granular/00.t
==============================================================================
--- head/tools/regression/fstest/tests/granular/00.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/granular/00.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,6 +6,8 @@ desc="NFSv4 granular permissions checkin
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
+[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
+
 echo "1..49"
 
 n0=`namegen`

Modified: head/tools/regression/fstest/tests/granular/01.t
==============================================================================
--- head/tools/regression/fstest/tests/granular/01.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/granular/01.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,6 +6,8 @@ desc="NFSv4 granular permissions checkin
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
+[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
+
 echo "1..12"
 
 n0=`namegen`

Modified: head/tools/regression/fstest/tests/granular/02.t
==============================================================================
--- head/tools/regression/fstest/tests/granular/02.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/granular/02.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,6 +6,8 @@ desc="NFSv4 granular permissions checkin
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
+[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
+
 echo "1..83"
 
 n0=`namegen`

Modified: head/tools/regression/fstest/tests/granular/03.t
==============================================================================
--- head/tools/regression/fstest/tests/granular/03.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/granular/03.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,6 +6,8 @@ desc="NFSv4 granular permissions checkin
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
+[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
+
 echo "1..65"
 
 n0=`namegen`

Modified: head/tools/regression/fstest/tests/granular/04.t
==============================================================================
--- head/tools/regression/fstest/tests/granular/04.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/granular/04.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,6 +6,8 @@ desc="NFSv4 granular permissions checkin
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
+[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
+
 echo "1..52"
 
 n0=`namegen`

Modified: head/tools/regression/fstest/tests/granular/05.t
==============================================================================
--- head/tools/regression/fstest/tests/granular/05.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/granular/05.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,6 +6,8 @@ desc="NFSv4 granular permissions checkin
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
+[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
+
 echo "1..68"
 
 n0=`namegen`

Modified: head/tools/regression/fstest/tests/link/05.t
==============================================================================
--- head/tools/regression/fstest/tests/link/05.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/link/05.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,36 +6,31 @@ desc="link returns EMLINK if the link co
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}:${fs}" in
-FreeBSD:UFS)
-	echo "1..5"
-
-	n0=`namegen`
-	n1=`namegen`
-	n2=`namegen`
-
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 1m`
-	newfs -i 1 /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 create ${n0}/${n1} 0644
-	i=1
-	while :; do
-		link ${n0}/${n1} ${n0}/${i} >/dev/null 2>&1
-		if [ $? -ne 0 ]; then
-			break
-		fi
-		i=`expr $i + 1`
-	done
-	test_check $i -eq 32767
-
-	expect EMLINK link ${n0}/${n1} ${n0}/${n2}
-
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+[ "${os}:${fs}" = "FreeBSD:UFS" ] || quick_exit
+
+echo "1..5"
+
+n0=`namegen`
+n1=`namegen`
+n2=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 1m`
+newfs -i 1 /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 create ${n0}/${n1} 0644
+i=1
+while :; do
+	link ${n0}/${n1} ${n0}/${i} >/dev/null 2>&1
+	if [ $? -ne 0 ]; then
+		break
+	fi
+	i=`expr $i + 1`
+done
+test_check $i -eq 32767
+
+expect EMLINK link ${n0}/${n1} ${n0}/${n2}
+
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/link/12.t
==============================================================================
--- head/tools/regression/fstest/tests/link/12.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/link/12.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -8,48 +8,88 @@ dir=`dirname $0`
 
 require chflags
 
-echo "1..32"
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	echo "1..27"
+	;;
+FreeBSD:UFS)
+	echo "1..48"
+	;;
+*)
+	quick_exit
+esac
 
 n0=`namegen`
 n1=`namegen`
 
 expect 0 create ${n0} 0644
 
+expect 1 stat ${n0} nlink
 expect 0 link ${n0} ${n1}
+expect 2 stat ${n0} nlink
 expect 0 unlink ${n1}
+expect 1 stat ${n0} nlink
 
 expect 0 chflags ${n0} SF_IMMUTABLE
+todo FreeBSD:ZFS "Creating a hard link to a file protected by SF_IMMUTABLE should return EPERM."
 expect EPERM link ${n0} ${n1}
+todo FreeBSD:ZFS "Creating a hard link to a file protected by SF_IMMUTABLE should return EPERM."
+expect 1 stat ${n0} nlink
 expect 0 chflags ${n0} none
+todo FreeBSD:ZFS "Creating a hard link to a file protected by SF_IMMUTABLE should return EPERM."
 expect 0 link ${n0} ${n1}
+expect 2 stat ${n0} nlink
 expect 0 unlink ${n1}
-
-expect 0 chflags ${n0} UF_IMMUTABLE
-expect EPERM link ${n0} ${n1}
-expect 0 chflags ${n0} none
-expect 0 link ${n0} ${n1}
-expect 0 unlink ${n1}
-
-expect 0 chflags ${n0} SF_APPEND
-expect EPERM link ${n0} ${n1}
-expect 0 chflags ${n0} none
-expect 0 link ${n0} ${n1}
-expect 0 unlink ${n1}
-
-expect 0 chflags ${n0} UF_APPEND
-expect EPERM link ${n0} ${n1}
-expect 0 chflags ${n0} none
-expect 0 link ${n0} ${n1}
-expect 0 unlink ${n1}
+expect 1 stat ${n0} nlink
 
 expect 0 chflags ${n0} SF_NOUNLINK
 expect 0 link ${n0} ${n1}
+expect 2 stat ${n0} nlink
 expect 0 chflags ${n0} none
 expect 0 unlink ${n1}
+expect 1 stat ${n0} nlink
 
-expect 0 chflags ${n0} UF_NOUNLINK
-expect 0 link ${n0} ${n1}
-expect 0 chflags ${n0} none
-expect 0 unlink ${n1}
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	expect 0 chflags ${n0} SF_APPEND
+	expect 0 link ${n0} ${n1}
+	expect 2 stat ${n0} nlink
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n1}
+	expect 1 stat ${n0} nlink
+	;;
+FreeBSD:UFS)
+	expect 0 chflags ${n0} SF_APPEND
+	expect EPERM link ${n0} ${n1}
+	expect 0 chflags ${n0} none
+	expect 0 link ${n0} ${n1}
+	expect 2 stat ${n0} nlink
+	expect 0 unlink ${n1}
+	expect 1 stat ${n0} nlink
+
+	expect 0 chflags ${n0} UF_IMMUTABLE
+	expect EPERM link ${n0} ${n1}
+	expect 0 chflags ${n0} none
+	expect 0 link ${n0} ${n1}
+	expect 2 stat ${n0} nlink
+	expect 0 unlink ${n1}
+	expect 1 stat ${n0} nlink
+
+	expect 0 chflags ${n0} UF_NOUNLINK
+	expect 0 link ${n0} ${n1}
+	expect 2 stat ${n0} nlink
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n1}
+	expect 1 stat ${n0} nlink
+
+	expect 0 chflags ${n0} UF_APPEND
+	expect EPERM link ${n0} ${n1}
+	expect 0 chflags ${n0} none
+	expect 0 link ${n0} ${n1}
+	expect 2 stat ${n0} nlink
+	expect 0 unlink ${n1}
+	expect 1 stat ${n0} nlink
+	;;
+esac
 
 expect 0 unlink ${n0}

Modified: head/tools/regression/fstest/tests/link/13.t
==============================================================================
--- head/tools/regression/fstest/tests/link/13.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/link/13.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -8,7 +8,16 @@ dir=`dirname $0`
 
 require chflags
 
-echo "1..32"
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	echo "1..29"
+	;;
+FreeBSD:UFS)
+	echo "1..49"
+	;;
+*)
+	quick_exit
+esac
 
 n0=`namegen`
 n1=`namegen`
@@ -17,40 +26,61 @@ n2=`namegen`
 expect 0 mkdir ${n0} 0755
 
 expect 0 create ${n0}/${n1} 0644
+expect 1 stat ${n0}/${n1} nlink
 expect 0 link ${n0}/${n1} ${n0}/${n2}
+expect 2 stat ${n0}/${n1} nlink
 expect 0 unlink ${n0}/${n2}
+expect 1 stat ${n0}/${n1} nlink
 
 expect 0 chflags ${n0} SF_IMMUTABLE
 expect EPERM link ${n0}/${n1} ${n0}/${n2}
+expect 1 stat ${n0}/${n1} nlink
 expect 0 chflags ${n0} none
 expect 0 link ${n0}/${n1} ${n0}/${n2}
+expect 2 stat ${n0}/${n1} nlink
 expect 0 unlink ${n0}/${n2}
-
-expect 0 chflags ${n0} UF_IMMUTABLE
-expect EPERM link ${n0}/${n1} ${n0}/${n2}
-expect 0 chflags ${n0} none
-expect 0 link ${n0}/${n1} ${n0}/${n2}
-expect 0 unlink ${n0}/${n2}
-
-expect 0 chflags ${n0} SF_APPEND
-expect 0 link ${n0}/${n1} ${n0}/${n2}
-expect 0 chflags ${n0} none
-expect 0 unlink ${n0}/${n2}
-
-expect 0 chflags ${n0} UF_APPEND
-expect 0 link ${n0}/${n1} ${n0}/${n2}
-expect 0 chflags ${n0} none
-expect 0 unlink ${n0}/${n2}
+expect 1 stat ${n0}/${n1} nlink
 
 expect 0 chflags ${n0} SF_NOUNLINK
 expect 0 link ${n0}/${n1} ${n0}/${n2}
+expect 2 stat ${n0}/${n1} nlink
 expect 0 chflags ${n0} none
 expect 0 unlink ${n0}/${n2}
+expect 1 stat ${n0}/${n1} nlink
 
-expect 0 chflags ${n0} UF_NOUNLINK
+expect 0 chflags ${n0} SF_APPEND
 expect 0 link ${n0}/${n1} ${n0}/${n2}
+expect 2 stat ${n0}/${n1} nlink
 expect 0 chflags ${n0} none
 expect 0 unlink ${n0}/${n2}
+expect 1 stat ${n0}/${n1} nlink
+
+case "${os}:${fs}" in
+FreeBSD:UFS)
+	expect 0 chflags ${n0} UF_IMMUTABLE
+	expect EPERM link ${n0}/${n1} ${n0}/${n2}
+	expect 1 stat ${n0}/${n1} nlink
+	expect 0 chflags ${n0} none
+	expect 0 link ${n0}/${n1} ${n0}/${n2}
+	expect 2 stat ${n0}/${n1} nlink
+	expect 0 unlink ${n0}/${n2}
+	expect 1 stat ${n0}/${n1} nlink
+
+	expect 0 chflags ${n0} UF_NOUNLINK
+	expect 0 link ${n0}/${n1} ${n0}/${n2}
+	expect 2 stat ${n0}/${n1} nlink
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n0}/${n2}
+	expect 1 stat ${n0}/${n1} nlink
+
+	expect 0 chflags ${n0} UF_APPEND
+	expect 0 link ${n0}/${n1} ${n0}/${n2}
+	expect 2 stat ${n0}/${n1} nlink
+	expect 0 chflags ${n0} none
+	expect 0 unlink ${n0}/${n2}
+	expect 1 stat ${n0}/${n1} nlink
+	;;
+esac
 
 expect 0 unlink ${n0}/${n1}
 expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/link/14.t
==============================================================================
--- head/tools/regression/fstest/tests/link/14.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/link/14.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,29 +6,24 @@ desc="link returns EXDEV if the source a
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}" in
-FreeBSD)
-	echo "1..8"
+[ "${os}" = "FreeBSD" ] || quick_exit
 
-	n0=`namegen`
-	n1=`namegen`
-	n2=`namegen`
+echo "1..8"
 
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 1m`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 create ${n0}/${n1} 0644
-	expect EXDEV link ${n0}/${n1} ${n2}
-	expect 0 unlink ${n0}/${n1}
-	expect 0 create ${n1} 0644
-	expect EXDEV link ${n1} ${n0}/${n2}
-	expect 0 unlink ${n1}
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+n0=`namegen`
+n1=`namegen`
+n2=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 1m`
+newfs /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 create ${n0}/${n1} 0644
+expect EXDEV link ${n0}/${n1} ${n2}
+expect 0 unlink ${n0}/${n1}
+expect 0 create ${n1} 0644
+expect EXDEV link ${n1} ${n0}/${n2}
+expect 0 unlink ${n1}
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/link/15.t
==============================================================================
--- head/tools/regression/fstest/tests/link/15.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/link/15.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,33 +6,28 @@ desc="link returns ENOSPC if the directo
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}:${fs}" in
-FreeBSD:UFS)
-	echo "1..4"
+[ "${os}:${fs}" = "FreeBSD:UFS" ] || quick_exit
 
-	n0=`namegen`
-	n1=`namegen`
-	n2=`namegen`
+echo "1..4"
 
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 256k`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 create ${n0}/${n1} 0644
-	i=0
-	while :; do
-		link ${n0}/${n1} ${n0}/${i} >/dev/null 2>&1
-		if [ $? -ne 0 ]; then
-			break
-		fi
-		i=`expr $i + 1`
-	done
-	expect ENOSPC link ${n0}/${n1} ${n0}/${n2}
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+n0=`namegen`
+n1=`namegen`
+n2=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 256k`
+newfs /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 create ${n0}/${n1} 0644
+i=0
+while :; do
+	link ${n0}/${n1} ${n0}/${i} >/dev/null 2>&1
+	if [ $? -ne 0 ]; then
+		break
+	fi
+	i=`expr $i + 1`
+done
+expect ENOSPC link ${n0}/${n1} ${n0}/${n2}
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/link/16.t
==============================================================================
--- head/tools/regression/fstest/tests/link/16.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/link/16.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,34 +6,29 @@ desc="link returns EROFS if the requeste
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}" in
-FreeBSD)
-	echo "1..9"
-
-	n0=`namegen`
-	n1=`namegen`
-	n2=`namegen`
-
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 1m`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 create ${n0}/${n1} 0644
-
-	expect 0 link ${n0}/${n1} ${n0}/${n2}
-	expect 0 unlink ${n0}/${n2}
-	mount -ur /dev/md${n}
-	expect EROFS link ${n0}/${n1} ${n0}/${n2}
-	mount -uw /dev/md${n}
-	expect 0 link ${n0}/${n1} ${n0}/${n2}
-	expect 0 unlink ${n0}/${n2}
-
-	expect 0 unlink ${n0}/${n1}
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+[ "${os}" = "FreeBSD" ] || quick_exit
+
+echo "1..9"
+
+n0=`namegen`
+n1=`namegen`
+n2=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 1m`
+newfs /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 create ${n0}/${n1} 0644
+
+expect 0 link ${n0}/${n1} ${n0}/${n2}
+expect 0 unlink ${n0}/${n2}
+mount -ur /dev/md${n}
+expect EROFS link ${n0}/${n1} ${n0}/${n2}
+mount -uw /dev/md${n}
+expect 0 link ${n0}/${n1} ${n0}/${n2}
+expect 0 unlink ${n0}/${n2}
+
+expect 0 unlink ${n0}/${n1}
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/mkdir/08.t
==============================================================================
--- head/tools/regression/fstest/tests/mkdir/08.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/mkdir/08.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -8,7 +8,16 @@ dir=`dirname $0`
 
 require chflags
 
-echo "1..30"
+case "${os}:${fs}" in
+FreeBSD:ZFS)
+	echo "1..17"
+	;;
+FreeBSD:UFS)
+	echo "1..30"
+	;;
+*)
+	quick_exit
+esac
 
 n0=`namegen`
 n1=`namegen`
@@ -24,30 +33,34 @@ expect 0 chflags ${n0} none
 expect 0 mkdir ${n0}/${n1} 0755
 expect 0 rmdir ${n0}/${n1}
 
-expect 0 chflags ${n0} UF_IMMUTABLE
-expect EPERM mkdir ${n0}/${n1} 0755
-expect 0 chflags ${n0} none
+expect 0 chflags ${n0} SF_NOUNLINK
 expect 0 mkdir ${n0}/${n1} 0755
 expect 0 rmdir ${n0}/${n1}
-
-expect 0 chflags ${n0} SF_APPEND
-expect 0 mkdir ${n0}/${n1} 0755
 expect 0 chflags ${n0} none
-expect 0 rmdir ${n0}/${n1}
 
-expect 0 chflags ${n0} UF_APPEND
+expect 0 chflags ${n0} SF_APPEND
 expect 0 mkdir ${n0}/${n1} 0755
 expect 0 chflags ${n0} none
 expect 0 rmdir ${n0}/${n1}
 
-expect 0 chflags ${n0} SF_NOUNLINK
-expect 0 mkdir ${n0}/${n1} 0755
-expect 0 rmdir ${n0}/${n1}
-expect 0 chflags ${n0} none
-
-expect 0 chflags ${n0} UF_NOUNLINK
-expect 0 mkdir ${n0}/${n1} 0755
-expect 0 rmdir ${n0}/${n1}
-expect 0 chflags ${n0} none
+case "${os}:${fs}" in
+FreeBSD:UFS)
+	expect 0 chflags ${n0} UF_IMMUTABLE
+	expect EPERM mkdir ${n0}/${n1} 0755
+	expect 0 chflags ${n0} none
+	expect 0 mkdir ${n0}/${n1} 0755
+	expect 0 rmdir ${n0}/${n1}
+
+	expect 0 chflags ${n0} UF_NOUNLINK
+	expect 0 mkdir ${n0}/${n1} 0755
+	expect 0 rmdir ${n0}/${n1}
+	expect 0 chflags ${n0} none
+
+	expect 0 chflags ${n0} UF_APPEND
+	expect 0 mkdir ${n0}/${n1} 0755
+	expect 0 chflags ${n0} none
+	expect 0 rmdir ${n0}/${n1}
+	;;
+esac
 
 expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/mkdir/09.t
==============================================================================
--- head/tools/regression/fstest/tests/mkdir/09.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/mkdir/09.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,29 +6,24 @@ desc="mkdir returns EROFS if the named f
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}:${fs}" in
-FreeBSD:UFS)
-	echo "1..7"
+[ "${os}:${fs}" = "FreeBSD:UFS" ] || quick_exit
 
-	n0=`namegen`
-	n1=`namegen`
+echo "1..7"
 
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 1m`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	expect 0 mkdir ${n0}/${n1} 0755
-	expect 0 rmdir ${n0}/${n1}
-	mount -ur /dev/md${n}
-	expect EROFS mkdir ${n0}/${n1} 0755
-	mount -uw /dev/md${n}
-	expect 0 mkdir ${n0}/${n1} 0755
-	expect 0 rmdir ${n0}/${n1}
-	umount /dev/md${n}
-	mdconfig -d -u ${n}
-	expect 0 rmdir ${n0}
-	;;
-*)
-	quick_exit
-	;;
-esac
+n0=`namegen`
+n1=`namegen`
+
+expect 0 mkdir ${n0} 0755
+n=`mdconfig -a -n -t malloc -s 1m`
+newfs /dev/md${n} >/dev/null
+mount /dev/md${n} ${n0}
+expect 0 mkdir ${n0}/${n1} 0755
+expect 0 rmdir ${n0}/${n1}
+mount -ur /dev/md${n}
+expect EROFS mkdir ${n0}/${n1} 0755
+mount -uw /dev/md${n}
+expect 0 mkdir ${n0}/${n1} 0755
+expect 0 rmdir ${n0}/${n1}
+umount /dev/md${n}
+mdconfig -d -u ${n}
+expect 0 rmdir ${n0}

Modified: head/tools/regression/fstest/tests/mkdir/11.t
==============================================================================
--- head/tools/regression/fstest/tests/mkdir/11.t	Fri Aug  6 23:52:16 2010	(r210983)
+++ head/tools/regression/fstest/tests/mkdir/11.t	Fri Aug  6 23:58:54 2010	(r210984)
@@ -6,31 +6,26 @@ desc="mkdir returns ENOSPC if there are 
 dir=`dirname $0`
 . ${dir}/../misc.sh
 
-case "${os}:${fs}" in
-FreeBSD:UFS)
-	echo "1..3"
+[ "${os}:${fs}" = "FreeBSD:UFS" ] || quick_exit
 
-	n0=`namegen`
-	n1=`namegen`
+echo "1..3"
 
-	expect 0 mkdir ${n0} 0755
-	n=`mdconfig -a -n -t malloc -s 256k`
-	newfs /dev/md${n} >/dev/null
-	mount /dev/md${n} ${n0}
-	i=0
-	while :; do
-		mkdir ${n0}/${i} >/dev/null 2>&1
-		if [ $? -ne 0 ]; then
-			break
-		fi
-		i=`expr $i + 1`
-	done
-	expect ENOSPC mkdir ${n0}/${n1} 0755

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-head mailing list