fish-shell/tests/psub.in
ridiculousfish 9907a8df4d Fix test hang when running under ninja
The psub tests create a fifo and launch a background job to write to it.
However fifos have this obnoxious behavior where opening the file blocks
until both sides are ready. In one of the tests we don't actually read
from the fifo we create, so the background job hangs, and the tests
never complete. Fix this by just reading from the fifo.
2017-12-21 15:48:48 -08:00

53 lines
1.4 KiB
Fish

# Test psub behavior
set -l filename (echo foo | psub --testing)
test -f $filename
or echo 'psub is not a regular file' >&2
rm $filename
set -l filename (echo foo | psub --testing --file)
test -f $filename
or echo 'psub is not a regular file' >&2
rm $filename
set -l filename (echo foo | psub --testing --fifo)
test -p $filename
or echo 'psub is not a fifo' >&2
# hack: the background write that psub peforms may block
# until someone opens the fifo for reading. So make sure we
# actually read it.
cat $filename > /dev/null
rm $filename
cat (echo foo | psub)
cat (echo bar | psub --fifo)
cat (echo baz | psub)
set -l filename (echo foo | psub)
if test -e $filename
echo 'psub file was not deleted'
else
echo 'psub file was deleted'
end
# The --file flag is the default behavior.
if count (echo foo | psub -s .cc | grep -o '\.cc$') >/dev/null
echo 'psub filename ends with .cc'
else
echo 'psub filename does not end with .cc'
end
# Make sure we get the same result if we explicitly ask for a temp file.
if count (echo foo | psub -f -s .cc | grep -o '\.cc$') >/dev/null
echo 'psub filename ends with .cc'
else
echo 'psub filename does not end with .cc'
end
set -l filename (echo foo | psub -s .fish)
if test -e (dirname $filename)
echo 'psub directory was not deleted'
else
echo 'psub directory was deleted'
end
diff -q (__fish_print_help psub | psub) (psub -hs banana | psub)