svn commit: r219439 -
head/tools/regression/pjdfstest/tests/ftruncate
Pawel Jakub Dawidek
pjd at FreeBSD.org
Wed Mar 9 23:11:31 UTC 2011
Author: pjd
Date: Wed Mar 9 23:11:30 2011
New Revision: 219439
URL: http://svn.freebsd.org/changeset/base/219439
Log:
Few initial ftruncate(2) tests. One of them covers stand/154873.
PR: stand/154873
Added:
head/tools/regression/pjdfstest/tests/ftruncate/
head/tools/regression/pjdfstest/tests/ftruncate/00.t (contents, props changed)
Added: head/tools/regression/pjdfstest/tests/ftruncate/00.t
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/tools/regression/pjdfstest/tests/ftruncate/00.t Wed Mar 9 23:11:30 2011 (r219439)
@@ -0,0 +1,58 @@
+#!/bin/sh
+# $FreeBSD$
+
+desc="ftruncate descrease/increase file size"
+
+dir=`dirname $0`
+. ${dir}/../misc.sh
+
+echo "1..21"
+
+n0=`namegen`
+n1=`namegen`
+
+expect 0 mkdir ${n1} 0755
+cdir=`pwd`
+cd ${n1}
+
+expect 0 create ${n0} 0644
+expect 0 open ${n0} O_RDWR : ftruncate 0 1234567
+expect 1234567 lstat ${n0} size
+expect 0 open ${n0} O_WRONLY : ftruncate 0 567
+expect 567 lstat ${n0} size
+expect 0 unlink ${n0}
+
+dd if=/dev/random of=${n0} bs=12345 count=1 >/dev/null 2>&1
+expect 0 open ${n0} O_RDWR : ftruncate 0 23456
+expect 23456 lstat ${n0} size
+expect 0 open ${n0} O_WRONLY : ftruncate 0 1
+expect 1 lstat ${n0} size
+expect 0 unlink ${n0}
+
+# successful ftruncate(2) updates ctime.
+expect 0 create ${n0} 0644
+ctime1=`${fstest} stat ${n0} ctime`
+sleep 1
+expect 0 open ${n0} O_RDWR : ftruncate 0 123
+ctime2=`${fstest} stat ${n0} ctime`
+test_check $ctime1 -lt $ctime2
+expect 0 unlink ${n0}
+
+# unsuccessful ftruncate(2) does not update ctime.
+expect 0 create ${n0} 0644
+ctime1=`${fstest} stat ${n0} ctime`
+sleep 1
+expect EINVAL -u 65534 open ${n0} O_RDONLY : ftruncate 0 123
+ctime2=`${fstest} stat ${n0} ctime`
+test_check $ctime1 -eq $ctime2
+expect 0 unlink ${n0}
+
+# third argument should not affect permission.
+expect 0 open ${n0} O_CREAT,O_RDWR 0 : ftruncate 0 0
+expect 0 unlink ${n0}
+expect 0 chmod . 0777
+expect 0 -u 65534 open ${n0} O_CREAT,O_RDWR 0 : ftruncate 0 0
+expect 0 unlink ${n0}
+
+cd ${cdir}
+expect 0 rmdir ${n1}
More information about the svn-src-head
mailing list