#!/bin/rc# # Execfs Regression# echo '== Execfs Regression ==' ## Parameters#TESTDIR=.testEXECLOG=execfs.logMPIPELOG=mpipefs.log ## Cleanup Previous Instances#fn cleanup { echo Cleaning up previous runs. unmount /n/test > /dev/null >[2] /dev/null unmount /proc > /dev/null >[2] /dev/null bind '#p' /proc rm -f /srv/mpipe} ## Startup execfs #fn startup { echo Starting mpipefs.... if(~ $#* 0) { mpipefs >[2] $MPIPELOG } if not { mpipefs -D -v $1 >[2] $MPIPELOG # CHATTY } echo Starting execfs. if(~ $#* 0) { execfs >[2] $EXECLOG } if not { execfs -D -v $1 >[2] $EXECLOG # CHATTY }} ## Setup a test directory#fn testdir { mkdir -p $TESTDIR} fn myexecstdin { mypid=`{cat} echo -n exec /bin/cat >>[2] execfs.log >>[2] error.log cat $TESTDIR/test > /proc/$mypid/stdin >>[2] error.log cat /proc/$mypid/stdout > $TESTDIR/test1 >>[2] error.log} fn myexecstdout { mypid=`{cat} echo -n exec /bin/cat $TESTDIR/test >>[2] error.log cat /proc/$mypid/stdout > $TESTDIR/test1 >>[2] error.log} fn stdout { echo -n Basic Test.... # initialize files echo Hello Squidboy > $TESTDIR/test echo > $TESTDIR/test1 # execute test myexecstdout <>/proc/clone >[1=0] # verify results if(! cmp -s $TESTDIR/test $TESTDIR/test1) { echo FAILED! exit 'stdout: test failed' } echo Success! # cleanup rm -rf $TESTDIR/*} fn stdin { echo -n Stdin Test.... # initialize files echo Hello Squidboy > $TESTDIR/test echo > $TESTDIR/test1 # execute test myexecstdin <>/proc/clone >[1=0] # verify results if(! cmp -s $TESTDIR/test $TESTDIR/test1) { echo FAILED! exit 'stdout: test failed' } echo Success! # cleanup rm -rf $TESTDIR/*} # Setupcleanupstartup $1testdir # Testsstdoutstdin #failing # Cleanuprm -rf $TESTDIRcleanup
#!/bin/rc
#
# Execfs Regression
#
echo '== Execfs Regression =='
#
# Parameters
#
TESTDIR=.test
EXECLOG=execfs.log
MPIPELOG=mpipefs.log
#
# Cleanup Previous Instances
#
fn cleanup {
echo Cleaning up previous runs.
unmount /n/test > /dev/null >[2] /dev/null
unmount /proc > /dev/null >[2] /dev/null
bind '#p' /proc
rm -f /srv/mpipe
}
#
# Startup execfs
#
fn startup {
echo Starting mpipefs....
if(~ $#* 0) {
mpipefs >[2] $MPIPELOG
}
if not {
mpipefs -D -v $1 >[2] $MPIPELOG # CHATTY
}
echo Starting execfs.
if(~ $#* 0) {
execfs >[2] $EXECLOG
}
if not {
execfs -D -v $1 >[2] $EXECLOG # CHATTY
}
}
#
# Setup a test directory
#
fn testdir {
mkdir -p $TESTDIR
}
fn myexecstdin {
mypid=`{cat}
echo -n exec /bin/cat >>[2] execfs.log >>[2] error.log
cat $TESTDIR/test > /proc/$mypid/stdin >>[2] error.log
cat /proc/$mypid/stdout > $TESTDIR/test1 >>[2] error.log
}
fn myexecstdout {
mypid=`{cat}
echo -n exec /bin/cat $TESTDIR/test >>[2] error.log
cat /proc/$mypid/stdout > $TESTDIR/test1 >>[2] error.log
}
fn stdout {
echo -n Basic Test....
# initialize files
echo Hello Squidboy > $TESTDIR/test
echo > $TESTDIR/test1
# execute test
myexecstdout <>/proc/clone >[1=0]
# verify results
if(! cmp -s $TESTDIR/test $TESTDIR/test1) {
echo FAILED!
exit 'stdout: test failed'
}
echo Success!
# cleanup
rm -rf $TESTDIR/*
}
fn stdin {
echo -n Stdin Test....
# initialize files
echo Hello Squidboy > $TESTDIR/test
echo > $TESTDIR/test1
# execute test
myexecstdin <>/proc/clone >[1=0]
# verify results
if(! cmp -s $TESTDIR/test $TESTDIR/test1) {
echo FAILED!
exit 'stdout: test failed'
}
echo Success!
# cleanup
rm -rf $TESTDIR/*
}
# Setup
cleanup
startup $1
testdir
# Tests
stdout
stdin #failing
# Cleanup
rm -rf $TESTDIR
cleanup