Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: zfsonlinux/fstest
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: BjoKaSH/fstest
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.
  • 10 commits
  • 56 files changed
  • 1 contributor

Commits on Sep 9, 2012

  1. Copy the full SHA
    abc3f28 View commit details
  2. Ignore compiled binary.

    BjoKaSH committed Sep 9, 2012
    Copy the full SHA
    02cfeef View commit details
  3. Copy the full SHA
    a06a245 View commit details
  4. Copy the full SHA
    bc32cb6 View commit details
  5. Copy the full SHA
    1b02133 View commit details
  6. Added support for HFS+ on Darwin / MacOSX.

    This alters the expected outcome of some tests to match the behavior
    of HFS+.  All changes are guarded by "if Darwin:HFS+" tests or similar
    structures.
    BjoKaSH committed Sep 9, 2012
    Copy the full SHA
    7995184 View commit details
  7. Copy the full SHA
    27df539 View commit details

Commits on Sep 10, 2012

  1. Copy the full SHA
    12060b3 View commit details
  2. Copy the full SHA
    ff35c87 View commit details
  3. Copy the full SHA
    4a55a71 View commit details
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
fstest
fstest.dSYM

6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# $FreeBSD: src/tools/regression/fstest/Makefile,v 1.1 2007/01/17 01:42:07 pjd Exp $

#CFLAGS+=-DHAS_LCHMOD
#CFLAGS+=-DHAS_CHFLAGS
#CFLAGS+=-DHAS_LCHFLAGS
CFLAGS+=-DHAS_CHFLAGS
CFLAGS+=-DHAS_LCHFLAGS
#CFLAGS+=-DHAS_TRUNCATE64
#CFLAGS+=-DHAS_STAT64

all: fstest

fstest: fstest.c
gcc -Wall ${CFLAGS} fstest.c -o fstest
gcc -Wall -g ${CFLAGS} fstest.c -o fstest

clean:
rm -f fstest
2 changes: 1 addition & 1 deletion tests/chflags/00.t
Original file line number Diff line number Diff line change
@@ -174,5 +174,5 @@ for flag in UF_IMMUTABLE SF_IMMUTABLE none; do
done
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n2}
2 changes: 1 addition & 1 deletion tests/chflags/05.t
Original file line number Diff line number Diff line change
@@ -31,5 +31,5 @@ expect UF_IMMUTABLE -u 65534 -g 65534 stat ${n1}/${n2} flags
expect 0 -u 65534 -g 65534 chflags ${n1}/${n2} none
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chflags/07.t
Original file line number Diff line number Diff line change
@@ -50,5 +50,5 @@ expect EPERM -u 65533 -g 65533 lchflags ${n1} UF_IMMUTABLE
expect none lstat ${n1} flags
expect 0 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chflags/08.t
Original file line number Diff line number Diff line change
@@ -66,5 +66,5 @@ done
expect 0 lchflags ${n1} none
expect 0 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chflags/09.t
Original file line number Diff line number Diff line change
@@ -78,5 +78,5 @@ expect 0 lchflags ${n1} none
expect 0 unlink ${n1}

sysctl security.jail.chflags_allowed=${old} >/dev/null
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chflags/10.t
Original file line number Diff line number Diff line change
@@ -58,5 +58,5 @@ for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do
done
expect 0 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chflags/11.t
Original file line number Diff line number Diff line change
@@ -66,5 +66,5 @@ expect EPERM lchflags ${n1} SF_SNAPSHOT
expect none lstat ${n1} flags
expect 0 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
10 changes: 9 additions & 1 deletion tests/chmod/00.t
Original file line number Diff line number Diff line change
@@ -48,6 +48,7 @@ expect 0 unlink ${n0}
expect 0 unlink ${n1}

if supported lchmod; then
# 25 - 35
expect 0 create ${n0} 0644
expect 0 symlink ${n0} ${n1}
expect 0644 stat ${n1} mode
@@ -62,6 +63,7 @@ if supported lchmod; then
fi

# successful chmod(2) updates ctime.
# 25 / 36
expect 0 create ${n0} 0644
ctime1=`${fstest} stat ${n0} ctime`
sleep 1
@@ -87,6 +89,7 @@ test_check $ctime1 -lt $ctime2
expect 0 unlink ${n0}

if supported lchmod; then
# 48 - 51
expect 0 symlink ${n1} ${n0}
ctime1=`${fstest} lstat ${n0} ctime`
sleep 1
@@ -97,6 +100,7 @@ if supported lchmod; then
fi

# unsuccessful chmod(2) does not update ctime.
# 37 / 52
expect 0 create ${n0} 0644
ctime1=`${fstest} stat ${n0} ctime`
sleep 1
@@ -122,6 +126,7 @@ test_check $ctime1 -eq $ctime2
expect 0 unlink ${n0}

if supported lchmod; then
# 64 - 67
expect 0 symlink ${n1} ${n0}
ctime1=`${fstest} lstat ${n0} ctime`
sleep 1
@@ -137,6 +142,7 @@ fi
# (set-group-ID on execution) in the file's mode shall be cleared upon
# successful return from chmod().

# 49 / 68
expect 0 create ${n0} 0755
expect 0 chown ${n0} 65535 65535
expect 0 -u 65535 -g 65535 chmod ${n0} 02755
@@ -157,5 +163,7 @@ FreeBSD)
esac
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n2}

# 58 / 77 tests
2 changes: 1 addition & 1 deletion tests/chmod/05.t
Original file line number Diff line number Diff line change
@@ -27,5 +27,5 @@ expect 0 -u 65534 -g 65534 chmod ${n1}/${n2} 0420
expect 0420 -u 65534 -g 65534 stat ${n1}/${n2} mode
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chmod/07.t
Original file line number Diff line number Diff line change
@@ -27,5 +27,5 @@ expect EPERM -u 65534 -g 65534 chmod ${n1}/${n2} 0641
expect 0642 stat ${n1}/${n2} mode
expect 0 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chmod/11.t
Original file line number Diff line number Diff line change
@@ -49,5 +49,5 @@ Linux)
esac
expect 0 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/chown/00.t
Original file line number Diff line number Diff line change
@@ -372,5 +372,5 @@ test_check $ctime1 -eq $ctime2
expect 0 unlink ${n0}

# 186
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n2}
2 changes: 1 addition & 1 deletion tests/chown/05.t
Original file line number Diff line number Diff line change
@@ -28,5 +28,5 @@ expect 0 -u 65534 -g 65533,65534 -- chown ${n1}/${n2} -1 65534
expect 65534,65534 -u 65534 -g 65534 stat ${n1}/${n2} uid,gid
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
4 changes: 2 additions & 2 deletions tests/chown/07.t
Original file line number Diff line number Diff line change
@@ -19,10 +19,10 @@ expect 0 mkdir ${n1} 0755
expect 0 chown ${n1} 65534 65534
expect 0 -u 65534 -g 65534 create ${n1}/${n2} 0644
expect EPERM -u 65534 -g 65534 chown ${n1}/${n2} 65533 65533
expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65534 65534
expect 0 -u 65533 -g 65533 chown ${n1}/${n2} 65534 65534
expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65533 65533
expect EPERM -u 65534 -g 65534 -- chown ${n1}/${n2} -1 65533
expect 0 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
4 changes: 2 additions & 2 deletions tests/conf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# $FreeBSD: src/tools/regression/fstest/tests/conf,v 1.1 2007/01/17 01:42:08 pjd Exp $
# fstest configuration file

# Known operating systems: FreeBSD, SunOS, Linux
# Known operating systems: FreeBSD, SunOS, Linux, Darwin (=MacOSX)
os=`uname`

# Known file systems: UFS, ZFS, ext3, ntfs-3g, xfs
# Known file systems: UFS, ZFS, ext3, ntfs-3g, xfs, HFS+
fs="ZFS"
42 changes: 33 additions & 9 deletions tests/link/00.t
Original file line number Diff line number Diff line change
@@ -126,10 +126,22 @@ 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
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin incorrectly modifies the parent directory's ctime
# and mtime even on a failed link() operation.
dctime2=`${fstest} stat . ctime`
test_check $dctime1 -lt $dctime2
dmtime2=`${fstest} stat . mtime`
test_check $dmtime1 -lt $dmtime2
;;
*)
dctime2=`${fstest} stat . ctime`
test_check $dctime1 -eq $dctime2
dmtime2=`${fstest} stat . mtime`
test_check $dmtime1 -eq $dmtime2
;;
esac
expect 0 unlink ${n0}

expect 0 mkfifo ${n0} 0644
@@ -141,11 +153,23 @@ 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
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin incorrectly modifies the parent directory's ctime
# and mtime even on a failed link() operation.
dctime2=`${fstest} stat . ctime`
test_check $dctime1 -lt $dctime2
dmtime2=`${fstest} stat . mtime`
test_check $dmtime1 -lt $dmtime2
;;
*)
dctime2=`${fstest} stat . ctime`
test_check $dctime1 -eq $dctime2
dmtime2=`${fstest} stat . mtime`
test_check $dmtime1 -eq $dmtime2
;;
esac
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n3}
2 changes: 1 addition & 1 deletion tests/link/06.t
Original file line number Diff line number Diff line change
@@ -39,5 +39,5 @@ expect 0 unlink ${n1}/${n3}
expect 0 rmdir ${n1}
expect 0 rmdir ${n2}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/link/07.t
Original file line number Diff line number Diff line change
@@ -37,5 +37,5 @@ expect 0 unlink ${n1}/${n3}
expect 0 rmdir ${n1}
expect 0 rmdir ${n2}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/link/11.t
Original file line number Diff line number Diff line change
@@ -37,5 +37,5 @@ expect 0 -u 65534 -g 65534 mkdir ${n1} 0755
expect EPERM -u 65534 -g 65534 link ${n1} ${n2}
expect 0 -u 65534 -g 65534 rmdir ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
16 changes: 13 additions & 3 deletions tests/misc.sh
Original file line number Diff line number Diff line change
@@ -69,13 +69,18 @@ expect()
{
e="${1}"
shift
r=`${fstest} $* 2>/dev/null | tail -1`
tmp=fstest_$$.err
r=`${fstest} $* 2>${tmp} | tail -1`
echo "${r}" | egrep '^'${e}'$' >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "ok ${ntest}"
else
echo "not ok ${ntest}"
echo "# ${ntest}: expected '${e}', received '${r}'"
echo "# ${ntest}: executed '${fstest} '" "$@" "'"
awk '{print "# '${ntest}': err: " $0;}' ${tmp}
fi
rm ${tmp}
ntest=`expr $ntest + 1`
}

@@ -101,13 +106,18 @@ test_check()
echo "ok ${ntest}"
else
echo "not ok ${ntest}"
echo "# ${ntest}: failed check: '$*'"
fi
ntest=`expr $ntest + 1`
}

namegen()
{
echo "fstest_`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum | cut -f1 -d' '`"
if [ ${os} == 'Darwin' ] ; then
echo "fstest_`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5 | cut -f1 -d' '`"
else
echo "fstest_`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum | cut -f1 -d' '`"
fi
}

quick_exit()
@@ -121,7 +131,7 @@ supported()
{
case "${1}" in
chflags)
if [ ${os} != "FreeBSD" -o ${fs} != "UFS" ]; then
if [ '(' ${os} != "FreeBSD" -a ${os} != "Darwin" ')' -o ${fs} != "UFS" ]; then
return 1
fi
;;
2 changes: 1 addition & 1 deletion tests/mkdir/00.t
Original file line number Diff line number Diff line change
@@ -69,5 +69,5 @@ ctime=`${fstest} stat . ctime`
test_check $time -lt $ctime
expect 0 rmdir ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n1}
2 changes: 1 addition & 1 deletion tests/mkdir/05.t
Original file line number Diff line number Diff line change
@@ -25,5 +25,5 @@ expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755
expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/mkdir/06.t
Original file line number Diff line number Diff line change
@@ -25,5 +25,5 @@ expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 mkdir ${n1}/${n2} 0755
expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/mkfifo/00.t
Original file line number Diff line number Diff line change
@@ -69,5 +69,5 @@ ctime=`${fstest} stat . ctime`
test_check $time -lt $ctime
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n1}
27 changes: 21 additions & 6 deletions tests/mkfifo/03.t
Original file line number Diff line number Diff line change
@@ -6,17 +6,32 @@ desc="mkfifo returns ENAMETOOLONG if an entire path name exceeded 1023 character
dir=`dirname $0`
. ${dir}/../misc.sh

echo "1..11"
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
echo "1..8"
;;
*)
echo "1..11"
;;
esac

expect 0 mkdir ${name255} 0755
expect 0 mkdir ${name255}/${name255} 0755
expect 0 mkdir ${name255}/${name255}/${name255} 0755
expect 0 mkdir ${path1021} 0755
expect 0 mkfifo ${path1023} 0644
expect 0 unlink ${path1023}
create_too_long
expect ENAMETOOLONG mkfifo ${too_long} 0644
unlink_too_long
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
# HFS+ on Darwin unfortunately creates the file, which then can't
# be deleted short of recreating the filesystem, loosing all data.
;;
*)
expect 0 mkfifo ${path1023} 0644
expect 0 unlink ${path1023}
create_too_long
expect ENAMETOOLONG mkfifo ${too_long} 0644
unlink_too_long
;;
esac
expect 0 rmdir ${path1021}
expect 0 rmdir ${name255}/${name255}/${name255}
expect 0 rmdir ${name255}/${name255}
2 changes: 1 addition & 1 deletion tests/mkfifo/05.t
Original file line number Diff line number Diff line change
@@ -25,5 +25,5 @@ expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/mkfifo/06.t
Original file line number Diff line number Diff line change
@@ -25,5 +25,5 @@ expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 mkfifo ${n1}/${n2} 0644
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
25 changes: 19 additions & 6 deletions tests/open/00.t
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ desc="open opens (and eventually creates) a file"
dir=`dirname $0`
. ${dir}/../misc.sh

echo "1..47"
echo "1..48"

n0=`namegen`
n1=`namegen`
@@ -42,6 +42,7 @@ expect 0 unlink ${n0}
# of the file shall be set to the group ID of the file's parent directory or to
# the effective group ID of the process [...]
expect 0 chown . 65535 65535
expect 0755,65535,65535 lstat . mode,uid,gid
expect 0 -u 65535 -g 65535 open ${n0} O_CREAT,O_WRONLY 0644
expect 65535,65535 lstat ${n0} uid,gid
expect 0 unlink ${n0}
@@ -76,10 +77,22 @@ dmtime=`${fstest} stat . mtime`
dctime=`${fstest} stat . ctime`
sleep 1
expect 0 open ${n0} O_CREAT,O_RDONLY 0644
mtime=`${fstest} stat . mtime`
test_check $dmtime -eq $mtime
ctime=`${fstest} stat . ctime`
test_check $dctime -eq $ctime
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin treats O_CREAT of existing file as unlink & link,
# and as a consequence updates time stamps
mtime=`${fstest} stat . mtime`
test_check $dmtime -lt $mtime
ctime=`${fstest} stat . ctime`
test_check $dctime -lt $ctime
;;
*)
mtime=`${fstest} stat . mtime`
test_check $dmtime -lt $mtime
ctime=`${fstest} stat . ctime`
test_check $dctime -lt $ctime
;;
esac
expect 0 unlink ${n0}

echo test > ${n0}
@@ -95,5 +108,5 @@ test_check $ctime1 -lt $ctime2
expect 0 stat ${n0} size
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n1}
19 changes: 17 additions & 2 deletions tests/open/02.t
Original file line number Diff line number Diff line change
@@ -6,9 +6,24 @@ desc="open returns ENAMETOOLONG if a component of a pathname exceeded 255 charac
dir=`dirname $0`
. ${dir}/../misc.sh

echo "1..4"
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
echo "1..3"
;;
*)
echo "1..4"
;;
esac

expect 0 open ${name255} O_CREAT 0620
expect 0620 stat ${name255} mode
expect 0 unlink ${name255}
expect ENAMETOOLONG open ${name256} O_CREAT 0620
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
# HFS+ on Darwin unfortunately creates the file, which then can't
# be deleted short of recreating the filesystem, loosing all data.
;;
*)
expect ENAMETOOLONG open ${name256} O_CREAT 0620
;;
esac
23 changes: 19 additions & 4 deletions tests/open/03.t
Original file line number Diff line number Diff line change
@@ -6,7 +6,14 @@ desc="open returns ENAMETOOLONG if an entire path name exceeded 1023 characters"
dir=`dirname $0`
. ${dir}/../misc.sh

echo "1..12"
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
echo "1..11"
;;
*)
echo "1..12"
;;
esac

expect 0 mkdir ${name255} 0755
expect 0 mkdir ${name255}/${name255} 0755
@@ -15,9 +22,17 @@ expect 0 mkdir ${path1021} 0755
expect 0 open ${path1023} O_CREAT 0642
expect 0642 stat ${path1023} mode
expect 0 unlink ${path1023}
create_too_long
expect ENAMETOOLONG open ${too_long} O_CREAT 0642
unlink_too_long
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
# HFS+ on Darwin unfortunately creates the file, which then can't
# be deleted short of recreating the filesystem, loosing all data.
;;
*)
create_too_long
expect ENAMETOOLONG open ${too_long} O_CREAT 0642
unlink_too_long
;;
esac
expect 0 rmdir ${path1021}
expect 0 rmdir ${name255}/${name255}/${name255}
expect 0 rmdir ${name255}/${name255}
2 changes: 1 addition & 1 deletion tests/open/05.t
Original file line number Diff line number Diff line change
@@ -25,5 +25,5 @@ expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 open ${n1}/${n2} O_RDONLY
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/open/06.t
Original file line number Diff line number Diff line change
@@ -98,5 +98,5 @@ expect 0 -u 65534 -g 65534 chmod ${n0} 0755
cd ${n0}
expect 0 -u 65534 -g 65534 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/open/07.t
Original file line number Diff line number Diff line change
@@ -41,5 +41,5 @@ expect EACCES -u 65533 -g 65533 open ${n1} O_RDONLY,O_TRUNC

expect 0 -u 65534 -g 65534 unlink ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/open/08.t
Original file line number Diff line number Diff line change
@@ -15,5 +15,5 @@ expect 0 mkdir ${n0} 0755
cdir=`pwd`
cd ${n0}
expect EACCES -u 65534 -g 65534 open ${n1} O_RDONLY,O_CREAT 0644
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
42 changes: 37 additions & 5 deletions tests/rename/00.t
Original file line number Diff line number Diff line change
@@ -77,31 +77,63 @@ ctime1=`${fstest} stat ${n0} ctime`
sleep 1
expect 0 rename ${n0} ${n1}
ctime2=`${fstest} stat ${n1} ctime`
test_check $ctime1 -lt $ctime2
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin incorrectly skips ctime update on file rename.
test_check $ctime1 -eq $ctime2 #49
;;
*)
test_check $ctime1 -lt $ctime2 #49
;;
esac
expect 0 unlink ${n1}

expect 0 mkdir ${n0} 0755
ctime1=`${fstest} stat ${n0} ctime`
sleep 1
expect 0 rename ${n0} ${n1}
ctime2=`${fstest} stat ${n1} ctime`
test_check $ctime1 -lt $ctime2
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin incorrectly skips ctime update on file rename.
test_check $ctime1 -eq $ctime2 #53
;;
*)
test_check $ctime1 -lt $ctime2 #53
;;
esac
expect 0 rmdir ${n1}

expect 0 mkfifo ${n0} 0644
ctime1=`${fstest} stat ${n0} ctime`
sleep 1
expect 0 rename ${n0} ${n1}
ctime2=`${fstest} stat ${n1} ctime`
test_check $ctime1 -lt $ctime2
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin incorrectly skips ctime update on file rename.
test_check $ctime1 -eq $ctime2 #57
;;
*)
test_check $ctime1 -lt $ctime2 #57
;;
esac
expect 0 unlink ${n1}

expect 0 symlink ${n2} ${n0}
ctime1=`${fstest} lstat ${n0} ctime`
sleep 1
expect 0 rename ${n0} ${n1}
ctime2=`${fstest} lstat ${n1} ctime`
test_check $ctime1 -lt $ctime2
case ${os}:${fs} in
Darwin:HFS+)
# HFS+ on Darwin incorrectly skips ctime update on file rename.
test_check $ctime1 -eq $ctime2 #61
;;
*)
test_check $ctime1 -lt $ctime2 #61
;;
esac
expect 0 unlink ${n1}

# unsuccessful link(2) does not update ctime.
@@ -137,5 +169,5 @@ ctime2=`${fstest} lstat ${n0} ctime`
test_check $ctime1 -eq $ctime2
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n3}
2 changes: 1 addition & 1 deletion tests/rename/04.t
Original file line number Diff line number Diff line change
@@ -39,5 +39,5 @@ expect 0 unlink ${n1}/${n3}
expect 0 rmdir ${n1}
expect 0 rmdir ${n2}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/rename/05.t
Original file line number Diff line number Diff line change
@@ -37,5 +37,5 @@ expect 0 unlink ${n1}/${n3}
expect 0 rmdir ${n1}
expect 0 rmdir ${n2}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/rename/09.t
Original file line number Diff line number Diff line change
@@ -90,5 +90,5 @@ expect 0 unlink ${n0}/${n2}
expect 0 rmdir ${n1}
expect 0 rmdir ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n4}
2 changes: 1 addition & 1 deletion tests/rename/10.t
Original file line number Diff line number Diff line change
@@ -239,5 +239,5 @@ expect 0 unlink ${n1}/${n3}
expect 0 rmdir ${n1}
expect 0 rmdir ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n4}
2 changes: 1 addition & 1 deletion tests/rmdir/07.t
Original file line number Diff line number Diff line change
@@ -23,5 +23,5 @@ expect EACCES -u 65534 -g 65534 rmdir ${n1}/${n2}
expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/rmdir/08.t
Original file line number Diff line number Diff line change
@@ -23,5 +23,5 @@ expect EACCES -u 65534 -g 65534 rmdir ${n1}/${n2}
expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 rmdir ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/rmdir/11.t
Original file line number Diff line number Diff line change
@@ -36,5 +36,5 @@ expect 0 rmdir ${n0}/${n1}

expect 0 rmdir ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n2}
2 changes: 1 addition & 1 deletion tests/rmdir/12.t
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ case "${os}" in
FreeBSD)
expect EINVAL rmdir ${n0}/${n1}/..
;;
Linux)
Linux|Darwin)
expect 'ENOTEMPTY|EEXIST' rmdir ${n0}/${n1}/..
;;
*)
29 changes: 22 additions & 7 deletions tests/symlink/03.t
Original file line number Diff line number Diff line change
@@ -6,7 +6,14 @@ desc="symlink returns ENAMETOOLONG if an entire length of either path name excee
dir=`dirname $0`
. ${dir}/../misc.sh

echo "1..14"
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
echo "1..10"
;;
*)
echo "1..14"
;;
esac

n0=`namegen`

@@ -16,12 +23,20 @@ expect 0 mkdir ${name255} 0755
expect 0 mkdir ${name255}/${name255} 0755
expect 0 mkdir ${name255}/${name255}/${name255} 0755
expect 0 mkdir ${path1021} 0755
expect 0 symlink ${n0} ${path1023}
expect 0 unlink ${path1023}
create_too_long
expect ENAMETOOLONG symlink ${n0} ${too_long}
expect ENAMETOOLONG symlink ${too_long} ${n0}
unlink_too_long
case ${os}:${fs} in
Darwin:HFS+|Darwin:ZFS)
# HFS+ on Darwin unfortunately creates the file, which then can't
# be deleted short of recreating the filesystem, loosing all data.
;;
*)
expect 0 symlink ${n0} ${path1023}
expect 0 unlink ${path1023}
create_too_long
expect ENAMETOOLONG symlink ${n0} ${too_long}
expect ENAMETOOLONG symlink ${too_long} ${n0}
unlink_too_long
;;
esac
expect 0 rmdir ${path1021}
expect 0 rmdir ${name255}/${name255}/${name255}
expect 0 rmdir ${name255}/${name255}
2 changes: 1 addition & 1 deletion tests/symlink/05.t
Original file line number Diff line number Diff line change
@@ -30,5 +30,5 @@ expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}

expect 0 rmdir ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/symlink/06.t
Original file line number Diff line number Diff line change
@@ -30,5 +30,5 @@ expect 0 unlink ${n1}/${n2}

expect 0 rmdir ${n1}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/truncate/00.t
Original file line number Diff line number Diff line change
@@ -47,5 +47,5 @@ ctime2=`${fstest} stat ${n0} ctime`
test_check $ctime1 -eq $ctime2
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n1}
2 changes: 1 addition & 1 deletion tests/truncate/05.t
Original file line number Diff line number Diff line change
@@ -28,5 +28,5 @@ expect 0 -u 65534 -g 65534 truncate ${n1}/${n2} 1234
expect 1234 -u 65534 -g 65534 stat ${n1}/${n2} size
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/truncate/06.t
Original file line number Diff line number Diff line change
@@ -20,5 +20,5 @@ expect 0 chown ${n1} 65534 65534
expect 0 chmod ${n1} 0444
expect EACCES -u 65534 -g 65534 truncate ${n1} 123
expect 0 unlink ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/truncate/12.t
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ n0=`namegen`
expect 0 create ${n0} 0644
r=`${fstest} truncate ${n0} 999999999999999 2>/dev/null`
case "${r}" in
EFBIG|EINVAL)
EFBIG|EINVAL|ENOSPC)
expect 0 stat ${n0} size
;;
0)
2 changes: 1 addition & 1 deletion tests/unlink/00.t
Original file line number Diff line number Diff line change
@@ -111,5 +111,5 @@ ctime=`${fstest} stat ${n0} ctime`
test_check $time -lt $ctime
expect 0 unlink ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n2}
2 changes: 1 addition & 1 deletion tests/unlink/05.t
Original file line number Diff line number Diff line change
@@ -23,5 +23,5 @@ expect EACCES -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/unlink/06.t
Original file line number Diff line number Diff line change
@@ -23,5 +23,5 @@ expect EACCES -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 chmod ${n1} 0755
expect 0 -u 65534 -g 65534 unlink ${n1}/${n2}
expect 0 rmdir ${n1}
cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n0}
2 changes: 1 addition & 1 deletion tests/unlink/11.t
Original file line number Diff line number Diff line change
@@ -64,5 +64,5 @@ expect 0 unlink ${n0}/${n1}

expect 0 rmdir ${n0}

cd ${cdir}
cd "${cdir}"
expect 0 rmdir ${n2}