140a8ac8fSEnji Cooper#!/bin/sh 2*3416500aSEnji Cooper# vim: filetype=sh noexpandtab ts=8 sw=8 340a8ac8fSEnji Cooper# $FreeBSD: head/tools/regression/pjdfstest/tests/truncate/00.t 211352 2010-08-15 21:24:17Z pjd $ 440a8ac8fSEnji Cooper 540a8ac8fSEnji Cooperdesc="truncate descrease/increase file size" 640a8ac8fSEnji Cooper 740a8ac8fSEnji Cooperdir=`dirname $0` 840a8ac8fSEnji Cooper. ${dir}/../misc.sh 940a8ac8fSEnji Cooper 1040a8ac8fSEnji Cooperecho "1..21" 1140a8ac8fSEnji Cooper 1240a8ac8fSEnji Coopern0=`namegen` 1340a8ac8fSEnji Coopern1=`namegen` 1440a8ac8fSEnji Cooper 1540a8ac8fSEnji Cooperexpect 0 mkdir ${n1} 0755 1640a8ac8fSEnji Coopercdir=`pwd` 1740a8ac8fSEnji Coopercd ${n1} 1840a8ac8fSEnji Cooper 1940a8ac8fSEnji Cooperexpect 0 create ${n0} 0644 2040a8ac8fSEnji Cooperexpect 0 truncate ${n0} 1234567 2140a8ac8fSEnji Cooperexpect 1234567 lstat ${n0} size 2240a8ac8fSEnji Cooperexpect 0 truncate ${n0} 567 2340a8ac8fSEnji Cooperexpect 567 lstat ${n0} size 2440a8ac8fSEnji Cooperexpect 0 unlink ${n0} 2540a8ac8fSEnji Cooper 2640a8ac8fSEnji Cooperdd if=/dev/random of=${n0} bs=12345 count=1 >/dev/null 2>&1 2740a8ac8fSEnji Cooperexpect 0 truncate ${n0} 23456 2840a8ac8fSEnji Cooperexpect 23456 lstat ${n0} size 2940a8ac8fSEnji Cooperexpect 0 truncate ${n0} 1 3040a8ac8fSEnji Cooperexpect 1 lstat ${n0} size 3140a8ac8fSEnji Cooperexpect 0 unlink ${n0} 3240a8ac8fSEnji Cooper 3340a8ac8fSEnji Cooper# successful truncate(2) updates ctime. 3440a8ac8fSEnji Cooperexpect 0 create ${n0} 0644 3540a8ac8fSEnji Cooperctime1=`${fstest} stat ${n0} ctime` 3640a8ac8fSEnji Coopersleep 1 3740a8ac8fSEnji Cooperexpect 0 truncate ${n0} 123 3840a8ac8fSEnji Cooperctime2=`${fstest} stat ${n0} ctime` 3940a8ac8fSEnji Coopertest_check $ctime1 -lt $ctime2 4040a8ac8fSEnji Cooperexpect 0 unlink ${n0} 4140a8ac8fSEnji Cooper 4240a8ac8fSEnji Cooper# unsuccessful truncate(2) does not update ctime. 4340a8ac8fSEnji Cooperexpect 0 create ${n0} 0644 4440a8ac8fSEnji Cooperctime1=`${fstest} stat ${n0} ctime` 4540a8ac8fSEnji Coopersleep 1 4640a8ac8fSEnji Cooperexpect EACCES -u 65534 truncate ${n0} 123 4740a8ac8fSEnji Cooperctime2=`${fstest} stat ${n0} ctime` 4840a8ac8fSEnji Coopertest_check $ctime1 -eq $ctime2 4940a8ac8fSEnji Cooperexpect 0 unlink ${n0} 5040a8ac8fSEnji Cooper 5140a8ac8fSEnji Coopercd ${cdir} 5240a8ac8fSEnji Cooperexpect 0 rmdir ${n1} 53