Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Mar 2011 23:11:30 +0000 (UTC)
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r219439 - head/tools/regression/pjdfstest/tests/ftruncate
Message-ID:  <201103092311.p29NBUOG023651@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103092311.p29NBUOG023651>