1271294Sngie#!/bin/sh
2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/mkfifo/00.t 211352 2010-08-15 21:24:17Z pjd $
3271294Sngie
4271294Sngiedesc="mkfifo creates fifo files"
5271294Sngie
6271294Sngiedir=`dirname $0`
7271294Sngie. ${dir}/../misc.sh
8271294Sngie
9271294Sngieecho "1..36"
10271294Sngie
11271294Sngien0=`namegen`
12271294Sngien1=`namegen`
13271294Sngie
14271294Sngieexpect 0 mkdir ${n1} 0755
15271294Sngiecdir=`pwd`
16271294Sngiecd ${n1}
17271294Sngie
18271294Sngie# POSIX: The file permission bits of the new FIFO shall be initialized from
19271294Sngie# mode. The file permission bits of the mode argument shall be modified by the
20271294Sngie# process' file creation mask.
21271294Sngieexpect 0 mkfifo ${n0} 0755
22271294Sngieexpect fifo,0755 lstat ${n0} type,mode
23271294Sngieexpect 0 unlink ${n0}
24271294Sngieexpect 0 mkfifo ${n0} 0151
25271294Sngieexpect fifo,0151 lstat ${n0} type,mode
26271294Sngieexpect 0 unlink ${n0}
27271294Sngieexpect 0 -U 077 mkfifo ${n0} 0151
28271294Sngieexpect fifo,0100 lstat ${n0} type,mode
29271294Sngieexpect 0 unlink ${n0}
30271294Sngieexpect 0 -U 070 mkfifo ${n0} 0345
31271294Sngieexpect fifo,0305 lstat ${n0} type,mode
32271294Sngieexpect 0 unlink ${n0}
33271294Sngieexpect 0 -U 0501 mkfifo ${n0} 0345
34271294Sngieexpect fifo,0244 lstat ${n0} type,mode
35271294Sngieexpect 0 unlink ${n0}
36271294Sngie
37271294Sngie# POSIX: The FIFO's user ID shall be set to the process' effective user ID.
38271294Sngie# The FIFO's group ID shall be set to the group ID of the parent directory or to
39271294Sngie# the effective group ID of the process.
40271294Sngieexpect 0 chown . 65535 65535
41271294Sngieexpect 0 -u 65535 -g 65535 mkfifo ${n0} 0755
42271294Sngieexpect 65535,65535 lstat ${n0} uid,gid
43271294Sngieexpect 0 unlink ${n0}
44271294Sngieexpect 0 -u 65535 -g 65534 mkfifo ${n0} 0755
45271294Sngieexpect "65535,6553[45]" lstat ${n0} uid,gid
46271294Sngieexpect 0 unlink ${n0}
47271294Sngieexpect 0 chmod . 0777
48271294Sngieexpect 0 -u 65534 -g 65533 mkfifo ${n0} 0755
49271294Sngieexpect "65534,6553[35]" lstat ${n0} uid,gid
50271294Sngieexpect 0 unlink ${n0}
51271294Sngie
52271294Sngie# POSIX: Upon successful completion, mkfifo() shall mark for update the
53271294Sngie# st_atime, st_ctime, and st_mtime fields of the file. Also, the st_ctime and
54271294Sngie# st_mtime fields of the directory that contains the new entry shall be marked
55271294Sngie# for update.
56271294Sngieexpect 0 chown . 0 0
57271294Sngietime=`${fstest} stat . ctime`
58271294Sngiesleep 1
59271294Sngieexpect 0 mkfifo ${n0} 0755
60271294Sngieatime=`${fstest} stat ${n0} atime`
61271294Sngietest_check $time -lt $atime
62271294Sngiemtime=`${fstest} stat ${n0} mtime`
63271294Sngietest_check $time -lt $mtime
64271294Sngiectime=`${fstest} stat ${n0} ctime`
65271294Sngietest_check $time -lt $ctime
66271294Sngiemtime=`${fstest} stat . mtime`
67271294Sngietest_check $time -lt $mtime
68271294Sngiectime=`${fstest} stat . ctime`
69271294Sngietest_check $time -lt $ctime
70271294Sngieexpect 0 unlink ${n0}
71271294Sngie
72271294Sngiecd ${cdir}
73271294Sngieexpect 0 rmdir ${n1}
74