1#!/bin/sh 2# $FreeBSD: src/tools/regression/fstest/tests/unlink/00.t,v 1.1 2007/01/17 01:42:12 pjd Exp $ 3 4desc="unlink removes regular files, symbolic links, fifos and sockets" 5 6n0=`namegen` 7n1=`namegen` 8n2=`namegen` 9 10expect 0 mkdir ${n2} 0755 11cdir=`pwd` 12cd ${n2} 13 14expect 0 create ${n0} 0644 15expect regular lstat ${n0} type 16expect 0 unlink ${n0} 17expect ENOENT lstat ${n0} type 18 19expect 0 symlink ${n1} ${n0} 20expect symlink lstat ${n0} type 21expect 0 unlink ${n0} 22expect ENOENT lstat ${n0} type 23 24expect 0 mkfifo ${n0} 0644 25expect fifo lstat ${n0} type 26expect 0 unlink ${n0} 27expect ENOENT lstat ${n0} type 28 29# TODO: sockets removal 30 31# successful unlink(2) updates ctime. 32expect 0 create ${n0} 0644 33expect 0 link ${n0} ${n1} 34ctime1=`${FSTEST} stat ${n0} ctime` 35sleep 1 36expect 0 unlink ${n1} 37ctime2=`${FSTEST} stat ${n0} ctime` 38test_check $ctime1 -lt $ctime2 39expect 0 unlink ${n0} 40 41expect 0 mkfifo ${n0} 0644 42expect 0 link ${n0} ${n1} 43ctime1=`${FSTEST} stat ${n0} ctime` 44sleep 1 45expect 0 unlink ${n1} 46ctime2=`${FSTEST} stat ${n0} ctime` 47test_check $ctime1 -lt $ctime2 48expect 0 unlink ${n0} 49 50# unsuccessful unlink(2) does not update ctime. 51expect 0 create ${n0} 0644 52ctime1=`${FSTEST} stat ${n0} ctime` 53sleep 1 54expect EACCES -u 65534 unlink ${n0} 55ctime2=`${FSTEST} stat ${n0} ctime` 56test_check $ctime1 -eq $ctime2 57expect 0 unlink ${n0} 58 59expect 0 mkfifo ${n0} 0644 60ctime1=`${FSTEST} stat ${n0} ctime` 61sleep 1 62expect EACCES -u 65534 unlink ${n0} 63ctime2=`${FSTEST} stat ${n0} ctime` 64test_check $ctime1 -eq $ctime2 65expect 0 unlink ${n0} 66 67expect 0 mkdir ${n0} 0755 68expect 0 create ${n0}/${n1} 0644 69time=`${FSTEST} stat ${n0} ctime` 70sleep 1 71expect 0 unlink ${n0}/${n1} 72mtime=`${FSTEST} stat ${n0} mtime` 73test_check $time -lt $mtime 74ctime=`${FSTEST} stat ${n0} ctime` 75test_check $time -lt $ctime 76expect 0 rmdir ${n0} 77 78expect 0 mkdir ${n0} 0755 79expect 0 mkfifo ${n0}/${n1} 0644 80time=`${FSTEST} stat ${n0} ctime` 81sleep 1 82expect 0 unlink ${n0}/${n1} 83mtime=`${FSTEST} stat ${n0} mtime` 84test_check $time -lt $mtime 85ctime=`${FSTEST} stat ${n0} ctime` 86test_check $time -lt $ctime 87expect 0 rmdir ${n0} 88 89expect 0 mkdir ${n0} 0755 90expect 0 symlink test ${n0}/${n1} 91time=`${FSTEST} stat ${n0} ctime` 92sleep 1 93expect 0 unlink ${n0}/${n1} 94mtime=`${FSTEST} stat ${n0} mtime` 95test_check $time -lt $mtime 96ctime=`${FSTEST} stat ${n0} ctime` 97test_check $time -lt $ctime 98expect 0 rmdir ${n0} 99 100expect 0 create ${n0} 0644 101expect 0 link ${n0} ${n1} 102time=`${FSTEST} stat ${n0} ctime` 103sleep 1 104expect 0 unlink ${n1} 105ctime=`${FSTEST} stat ${n0} ctime` 106test_check $time -lt $ctime 107expect 0 unlink ${n0} 108 109cd ${cdir} 110expect 0 rmdir ${n2} 111