xref: /src/contrib/pjdfstest/tests/mknod/00.t (revision 3416500aef140042c64bc149cb1ec6620483bc44)
19a56205fSEnji Cooper#!/bin/sh
2a5b450a4SEnji Cooper# vim: filetype=sh noexpandtab ts=8 sw=8
39a56205fSEnji Cooper# $FreeBSD: head/tools/regression/pjdfstest/tests/mknod/00.t 211352 2010-08-15 21:24:17Z pjd $
49a56205fSEnji Cooper
59a56205fSEnji Cooperdesc="mknod creates fifo files"
69a56205fSEnji Cooper
79a56205fSEnji Cooperdir=`dirname $0`
89a56205fSEnji Cooper. ${dir}/../misc.sh
99a56205fSEnji Cooper
109a56205fSEnji Cooperecho "1..36"
119a56205fSEnji Cooper
129a56205fSEnji Coopern0=`namegen`
139a56205fSEnji Coopern1=`namegen`
149a56205fSEnji Cooper
159a56205fSEnji Cooperexpect 0 mkdir ${n1} 0755
169a56205fSEnji Coopercdir=`pwd`
179a56205fSEnji Coopercd ${n1}
189a56205fSEnji Cooper
199a56205fSEnji Cooper# POSIX: The file permission bits of the new FIFO shall be initialized from
209a56205fSEnji Cooper# mode. The file permission bits of the mode argument shall be modified by the
219a56205fSEnji Cooper# process' file creation mask.
229a56205fSEnji Cooperexpect 0 mknod ${n0} f 0755 0 0
239a56205fSEnji Cooperexpect fifo,0755 lstat ${n0} type,mode
249a56205fSEnji Cooperexpect 0 unlink ${n0}
259a56205fSEnji Cooperexpect 0 mknod ${n0} f 0151 0 0
269a56205fSEnji Cooperexpect fifo,0151 lstat ${n0} type,mode
279a56205fSEnji Cooperexpect 0 unlink ${n0}
289a56205fSEnji Cooperexpect 0 -U 077 mknod ${n0} f 0151 0 0
299a56205fSEnji Cooperexpect fifo,0100 lstat ${n0} type,mode
309a56205fSEnji Cooperexpect 0 unlink ${n0}
319a56205fSEnji Cooperexpect 0 -U 070 mknod ${n0} f 0345 0 0
329a56205fSEnji Cooperexpect fifo,0305 lstat ${n0} type,mode
339a56205fSEnji Cooperexpect 0 unlink ${n0}
349a56205fSEnji Cooperexpect 0 -U 0501 mknod ${n0} f 0345 0 0
359a56205fSEnji Cooperexpect fifo,0244 lstat ${n0} type,mode
369a56205fSEnji Cooperexpect 0 unlink ${n0}
379a56205fSEnji Cooper
389a56205fSEnji Cooper# POSIX: The FIFO's user ID shall be set to the process' effective user ID.
399a56205fSEnji Cooper# The FIFO's group ID shall be set to the group ID of the parent directory or to
409a56205fSEnji Cooper# the effective group ID of the process.
419a56205fSEnji Cooperexpect 0 chown . 65535 65535
429a56205fSEnji Cooperexpect 0 -u 65535 -g 65535 mknod ${n0} f 0755 0 0
439a56205fSEnji Cooperexpect 65535,65535 lstat ${n0} uid,gid
449a56205fSEnji Cooperexpect 0 unlink ${n0}
459a56205fSEnji Cooperexpect 0 -u 65535 -g 65534 mknod ${n0} f 0755 0 0
469a56205fSEnji Cooperexpect "65535,6553[45]" lstat ${n0} uid,gid
479a56205fSEnji Cooperexpect 0 unlink ${n0}
489a56205fSEnji Cooperexpect 0 chmod . 0777
499a56205fSEnji Cooperexpect 0 -u 65534 -g 65533 mknod ${n0} f 0755 0 0
509a56205fSEnji Cooperexpect "65534,6553[35]" lstat ${n0} uid,gid
519a56205fSEnji Cooperexpect 0 unlink ${n0}
529a56205fSEnji Cooper
53a5b450a4SEnji Cooper# POSIX: Upon successful completion, mknod() shall mark for update the
549a56205fSEnji Cooper# st_atime, st_ctime, and st_mtime fields of the file. Also, the st_ctime and
559a56205fSEnji Cooper# st_mtime fields of the directory that contains the new entry shall be marked
569a56205fSEnji Cooper# for update.
579a56205fSEnji Cooperexpect 0 chown . 0 0
589a56205fSEnji Coopertime=`${fstest} stat . ctime`
599a56205fSEnji Coopersleep 1
609a56205fSEnji Cooperexpect 0 mknod ${n0} f 0755 0 0
619a56205fSEnji Cooperatime=`${fstest} stat ${n0} atime`
629a56205fSEnji Coopertest_check $time -lt $atime
639a56205fSEnji Coopermtime=`${fstest} stat ${n0} mtime`
649a56205fSEnji Coopertest_check $time -lt $mtime
659a56205fSEnji Cooperctime=`${fstest} stat ${n0} ctime`
669a56205fSEnji Coopertest_check $time -lt $ctime
679a56205fSEnji Coopermtime=`${fstest} stat . mtime`
689a56205fSEnji Coopertest_check $time -lt $mtime
699a56205fSEnji Cooperctime=`${fstest} stat . ctime`
709a56205fSEnji Coopertest_check $time -lt $ctime
719a56205fSEnji Cooperexpect 0 unlink ${n0}
729a56205fSEnji Cooper
739a56205fSEnji Coopercd ${cdir}
749a56205fSEnji Cooperexpect 0 rmdir ${n1}
75