1#!/bin/sh 2# $FreeBSD: src/tools/regression/fstest/tests/truncate/00.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ 3 4desc="truncate descrease/increase file size" 5 6n0=`namegen` 7n1=`namegen` 8 9expect 0 mkdir ${n1} 0755 10cdir=`pwd` 11cd ${n1} 12 13expect 0 create ${n0} 0644 14expect 0 truncate ${n0} 1234567 15expect 1234567 lstat ${n0} size 16expect 0 truncate ${n0} 567 17expect 567 lstat ${n0} size 18expect 0 unlink ${n0} 19 20dd if=/dev/random of=${n0} bs=12345 count=1 status=none 21expect 0 truncate ${n0} 23456 22expect 23456 lstat ${n0} size 23expect 0 truncate ${n0} 1 24expect 1 lstat ${n0} size 25expect 0 unlink ${n0} 26 27# successful truncate(2) updates ctime. 28expect 0 create ${n0} 0644 29ctime1=`${FSTEST} stat ${n0} ctime` 30sleep 1 31expect 0 truncate ${n0} 123 32ctime2=`${FSTEST} stat ${n0} ctime` 33test_check $ctime1 -lt $ctime2 34expect 0 unlink ${n0} 35 36# unsuccessful truncate(2) does not update ctime. 37expect 0 create ${n0} 0644 38ctime1=`${FSTEST} stat ${n0} ctime` 39sleep 1 40expect EACCES -u 65534 truncate ${n0} 123 41ctime2=`${FSTEST} stat ${n0} ctime` 42test_check $ctime1 -eq $ctime2 43expect 0 unlink ${n0} 44 45cd ${cdir} 46expect 0 rmdir ${n1} 47