summaryrefslogtreecommitdiff
path: root/tests/arguments.at
diff options
context:
space:
mode:
Diffstat (limited to 'tests/arguments.at')
-rw-r--r--tests/arguments.at166
1 files changed, 166 insertions, 0 deletions
diff --git a/tests/arguments.at b/tests/arguments.at
new file mode 100644
index 0000000000000..562fd831c9d2c
--- /dev/null
+++ b/tests/arguments.at
@@ -0,0 +1,166 @@
+# Command-line argument handling
+
+AT_SETUP([-b])
+
+AT_DATA([-script.csh],
+[[echo $1
+]])
+AT_CHECK([tcsh -f -b -script.csh --version], , [--version
+])
+
+AT_CLEANUP
+
+
+AT_SETUP([-c])
+
+AT_CHECK([tcsh -f -c 'echo $1' foo], , [foo
+])
+
+AT_CHECK([tcsh -f -c 'exit 99'], 99)
+
+AT_CHECK([tcsh -f -c 'echo \\\'], 1, ,
+[Argument for -c ends in backslash.
+])
+
+AT_CHECK([tcsh -f -c 'echo \\'], ,
+[\
+])
+
+AT_CHECK([tcsh -f -c])
+
+AT_CLEANUP
+
+
+TCSH_UNTESTED([-d])
+
+
+AT_SETUP([-e])
+
+# Note that exit is a builtin, won't work here without using a subshell
+AT_CHECK([tcsh -f -e -c 'echo 1; (exit 3); echo 2'], 3, [1
+])
+
+AT_CLEANUP
+
+
+TCSH_UNTESTED([-f])
+
+
+AT_SETUP([-i])
+
+AT_CHECK([echo 'echo $1' | tcsh -f -q -i foo], ,
+[[> foo
+> exit
+]])
+
+AT_CLEANUP
+
+
+# Warning message contains strerror(EBADF), libc-dependent; can't be turned
+# off using -q because -l works only when alone
+TCSH_UNTESTED([-l])
+
+
+
+TCSH_UNTESTED([-m])
+
+
+# -n tested in noexec.at
+
+
+TCSH_UNTESTED([-q])
+#AT_SETUP([-q])
+
+# Nested to make the SIGQUIT reporting predictable
+#AT_CHECK([tcsh -f -q -c 'kill -QUIT $$'], 131, ,)
+
+#AT_CLEANUP
+
+
+AT_SETUP([-s])
+
+AT_CHECK([echo 'echo $1' | tcsh -f -s foo], , [foo
+])
+
+AT_CLEANUP
+
+
+AT_SETUP([-t])
+
+AT_DATA([input.csh],
+[[echo 1\
+2
+]])
+AT_CHECK([tcsh -f -t < input.csh], , [1 2
+])
+
+AT_CLEANUP
+
+
+AT_SETUP([-v])
+
+AT_CHECK([echo 'repeat 2 echo OK' | tcsh -f -v], ,
+[OK
+OK
+],
+[repeat 2 echo OK
+])
+
+AT_CLEANUP
+
+
+AT_SETUP([-x])
+
+AT_CHECK([echo 'repeat 2 echo OK' | tcsh -f -x], ,
+[OK
+OK
+],
+[repeat 2 echo OK
+echo OK
+echo OK
+])
+
+AT_CLEANUP
+
+
+TCSH_UNTESTED([-V])
+TCSH_UNTESTED([-X])
+
+
+TCSH_UNTESTED([--help])
+TCSH_UNTESTED([--version])
+
+
+AT_SETUP([invalid option])
+
+AT_CHECK([tcsh -f -Z], 1, ,
+[[Unknown option: `-Z'
+Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ].
+]])
+
+AT_CLEANUP
+
+
+
+AT_SETUP([non-option arguments])
+
+AT_DATA([options.csh],
+[[echo $0
+echo $1
+echo $#argv
+echo $argv
+]])
+AT_CHECK([tcsh -f ./././options.csh one two three], ,
+[./././options.csh
+one
+3
+one two three
+])
+
+AT_DATA([unreadable.csh],
+[[echo fail
+]])
+chmod 0 unreadable.csh
+AT_CHECK([tcsh -f unreadable.csh], 1, [], [ignore])
+
+AT_CLEANUP