1271294Sngie#!/bin/sh 2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/ftruncate/00.t 219439 2011-03-09 23:11:30Z pjd $ 3271294Sngie 4271294Sngiedesc="ftruncate descrease/increase file size" 5271294Sngie 6271294Sngiedir=`dirname $0` 7271294Sngie. ${dir}/../misc.sh 8271294Sngie 9275504Sngieecho "1..26" 10271294Sngie 11271294Sngien0=`namegen` 12271294Sngien1=`namegen` 13271294Sngie 14271294Sngieexpect 0 mkdir ${n1} 0755 15271294Sngiecdir=`pwd` 16271294Sngiecd ${n1} 17271294Sngie 18271294Sngieexpect 0 create ${n0} 0644 19271294Sngieexpect 0 open ${n0} O_RDWR : ftruncate 0 1234567 20271294Sngieexpect 1234567 lstat ${n0} size 21271294Sngieexpect 0 open ${n0} O_WRONLY : ftruncate 0 567 22271294Sngieexpect 567 lstat ${n0} size 23271294Sngieexpect 0 unlink ${n0} 24271294Sngie 25271294Sngiedd if=/dev/random of=${n0} bs=12345 count=1 >/dev/null 2>&1 26271294Sngieexpect 0 open ${n0} O_RDWR : ftruncate 0 23456 27271294Sngieexpect 23456 lstat ${n0} size 28271294Sngieexpect 0 open ${n0} O_WRONLY : ftruncate 0 1 29271294Sngieexpect 1 lstat ${n0} size 30271294Sngieexpect 0 unlink ${n0} 31271294Sngie 32271294Sngie# successful ftruncate(2) updates ctime. 33271294Sngieexpect 0 create ${n0} 0644 34271294Sngiectime1=`${fstest} stat ${n0} ctime` 35271294Sngiesleep 1 36271294Sngieexpect 0 open ${n0} O_RDWR : ftruncate 0 123 37271294Sngiectime2=`${fstest} stat ${n0} ctime` 38271294Sngietest_check $ctime1 -lt $ctime2 39271294Sngieexpect 0 unlink ${n0} 40271294Sngie 41271294Sngie# unsuccessful ftruncate(2) does not update ctime. 42271294Sngieexpect 0 create ${n0} 0644 43271294Sngiectime1=`${fstest} stat ${n0} ctime` 44271294Sngiesleep 1 45271294Sngieexpect EINVAL -u 65534 open ${n0} O_RDONLY : ftruncate 0 123 46271294Sngiectime2=`${fstest} stat ${n0} ctime` 47271294Sngietest_check $ctime1 -eq $ctime2 48271294Sngieexpect 0 unlink ${n0} 49271294Sngie 50271294Sngie# third argument should not affect permission. 51271294Sngieexpect 0 open ${n0} O_CREAT,O_RDWR 0 : ftruncate 0 0 52271294Sngieexpect 0 unlink ${n0} 53271294Sngieexpect 0 chmod . 0777 54271294Sngieexpect 0 -u 65534 open ${n0} O_CREAT,O_RDWR 0 : ftruncate 0 0 55271294Sngieexpect 0 unlink ${n0} 56271294Sngie 57271294Sngiecd ${cdir} 58271294Sngieexpect 0 rmdir ${n1} 59