1166065Spjd#!/bin/sh 2166065Spjd# $FreeBSD: releng/10.2/tools/regression/pjdfstest/tests/truncate/00.t 166065 2007-01-17 01:42:12Z pjd $ 3166065Spjd 4166065Spjddesc="truncate descrease/increase file size" 5166065Spjd 6166065Spjddir=`dirname $0` 7166065Spjd. ${dir}/../misc.sh 8166065Spjd 9166065Spjdecho "1..21" 10166065Spjd 11166065Spjdn0=`namegen` 12166065Spjdn1=`namegen` 13166065Spjd 14166065Spjdexpect 0 mkdir ${n1} 0755 15166065Spjdcdir=`pwd` 16166065Spjdcd ${n1} 17166065Spjd 18166065Spjdexpect 0 create ${n0} 0644 19166065Spjdexpect 0 truncate ${n0} 1234567 20166065Spjdexpect 1234567 lstat ${n0} size 21166065Spjdexpect 0 truncate ${n0} 567 22166065Spjdexpect 567 lstat ${n0} size 23166065Spjdexpect 0 unlink ${n0} 24166065Spjd 25166065Spjddd if=/dev/random of=${n0} bs=12345 count=1 >/dev/null 2>&1 26166065Spjdexpect 0 truncate ${n0} 23456 27166065Spjdexpect 23456 lstat ${n0} size 28166065Spjdexpect 0 truncate ${n0} 1 29166065Spjdexpect 1 lstat ${n0} size 30166065Spjdexpect 0 unlink ${n0} 31166065Spjd 32166065Spjd# successful truncate(2) updates ctime. 33166065Spjdexpect 0 create ${n0} 0644 34166065Spjdctime1=`${fstest} stat ${n0} ctime` 35166065Spjdsleep 1 36166065Spjdexpect 0 truncate ${n0} 123 37166065Spjdctime2=`${fstest} stat ${n0} ctime` 38166065Spjdtest_check $ctime1 -lt $ctime2 39166065Spjdexpect 0 unlink ${n0} 40166065Spjd 41166065Spjd# unsuccessful truncate(2) does not update ctime. 42166065Spjdexpect 0 create ${n0} 0644 43166065Spjdctime1=`${fstest} stat ${n0} ctime` 44166065Spjdsleep 1 45166065Spjdexpect EACCES -u 65534 truncate ${n0} 123 46166065Spjdctime2=`${fstest} stat ${n0} ctime` 47166065Spjdtest_check $ctime1 -eq $ctime2 48166065Spjdexpect 0 unlink ${n0} 49166065Spjd 50166065Spjdcd ${cdir} 51166065Spjdexpect 0 rmdir ${n1} 52