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