From eb8b92fce780fb3be124cc507f51af0c1c6235b7 Mon Sep 17 00:00:00 2001 From: Charles Ferguson Date: Thu, 29 Jun 2017 16:37:55 +0100 Subject: [PATCH] Add tests for some other command line option invocations. Some more of the invocations are tested in this change: - bad switches - errors in configuration files - regular command, configuration and init command ordering - persistence of variables over command invocation. - interactive and login switch use - terminal exit code return - version request There are sure to be other invocations that should be tested, but these give a fair number of them a go. --- tests/invocation/bad-switch.err | 2 ++ tests/invocation/bad-switch.invoke | 1 + tests/invocation/broken-config-continues.config | 2 ++ tests/invocation/broken-config-continues.err | 7 +++++++ tests/invocation/broken-config-continues.invoke | 1 + tests/invocation/broken-config-continues.out | 2 ++ tests/invocation/command-1.invoke | 1 + tests/invocation/command-1.out | 1 + tests/invocation/command-2.invoke | 1 + tests/invocation/command-2.out | 2 ++ tests/invocation/command-vars-persist.invoke | 1 + tests/invocation/command-vars-persist.out | 1 + tests/invocation/config-command-ordering.config | 1 + tests/invocation/config-command-ordering.invoke | 1 + tests/invocation/config-command-ordering.out | 3 +++ tests/invocation/config.config | 1 + tests/invocation/config.invoke | 1 + tests/invocation/config.out | 1 + tests/invocation/interactive.invoke | 3 +++ tests/invocation/interactive.out | 2 ++ tests/invocation/login-interactive.invoke | 4 ++++ tests/invocation/login-interactive.out | 2 ++ tests/invocation/login.invoke | 3 +++ tests/invocation/login.out | 2 ++ tests/invocation/no-login-no-interactive.invoke | 2 ++ tests/invocation/no-login-no-interactive.out | 2 ++ tests/invocation/rc-returned.err | 1 + tests/invocation/rc-returned.invoke | 1 + tests/invocation/version.grep | 1 + tests/invocation/version.invoke | 1 + tests/invocation/version.out | 1 + 31 files changed, 55 insertions(+) create mode 100644 tests/invocation/bad-switch.err create mode 100644 tests/invocation/bad-switch.invoke create mode 100644 tests/invocation/broken-config-continues.config create mode 100644 tests/invocation/broken-config-continues.err create mode 100644 tests/invocation/broken-config-continues.invoke create mode 100644 tests/invocation/broken-config-continues.out create mode 100644 tests/invocation/command-1.invoke create mode 100644 tests/invocation/command-1.out create mode 100644 tests/invocation/command-2.invoke create mode 100644 tests/invocation/command-2.out create mode 100644 tests/invocation/command-vars-persist.invoke create mode 100644 tests/invocation/command-vars-persist.out create mode 100644 tests/invocation/config-command-ordering.config create mode 100644 tests/invocation/config-command-ordering.invoke create mode 100644 tests/invocation/config-command-ordering.out create mode 100644 tests/invocation/config.config create mode 100644 tests/invocation/config.invoke create mode 100644 tests/invocation/config.out create mode 100644 tests/invocation/interactive.invoke create mode 100644 tests/invocation/interactive.out create mode 100644 tests/invocation/login-interactive.invoke create mode 100644 tests/invocation/login-interactive.out create mode 100644 tests/invocation/login.invoke create mode 100644 tests/invocation/login.out create mode 100644 tests/invocation/no-login-no-interactive.invoke create mode 100644 tests/invocation/no-login-no-interactive.out create mode 100644 tests/invocation/rc-returned.err create mode 100644 tests/invocation/rc-returned.invoke create mode 100644 tests/invocation/version.grep create mode 100644 tests/invocation/version.invoke create mode 100644 tests/invocation/version.out diff --git a/tests/invocation/bad-switch.err b/tests/invocation/bad-switch.err new file mode 100644 index 000000000..93124dfa5 --- /dev/null +++ b/tests/invocation/bad-switch.err @@ -0,0 +1,2 @@ +./fish: invalid option -- 'Z' +RC: 1 diff --git a/tests/invocation/bad-switch.invoke b/tests/invocation/bad-switch.invoke new file mode 100644 index 000000000..2e52e40e7 --- /dev/null +++ b/tests/invocation/bad-switch.invoke @@ -0,0 +1 @@ +-Z diff --git a/tests/invocation/broken-config-continues.config b/tests/invocation/broken-config-continues.config new file mode 100644 index 000000000..9884fb83a --- /dev/null +++ b/tests/invocation/broken-config-continues.config @@ -0,0 +1,2 @@ +echo broken +syntax-error diff --git a/tests/invocation/broken-config-continues.err b/tests/invocation/broken-config-continues.err new file mode 100644 index 000000000..d313eb7f7 --- /dev/null +++ b/tests/invocation/broken-config-continues.err @@ -0,0 +1,7 @@ +fish: Unknown command 'syntax-error' +$XDG_CONFIG_HOME/fish/config.fish (line 2): +syntax-error +^ +from sourcing file $XDG_CONFIG_HOME/fish/config.fish + called during startup + diff --git a/tests/invocation/broken-config-continues.invoke b/tests/invocation/broken-config-continues.invoke new file mode 100644 index 000000000..56d0c77d6 --- /dev/null +++ b/tests/invocation/broken-config-continues.invoke @@ -0,0 +1 @@ +-c 'echo but still going' diff --git a/tests/invocation/broken-config-continues.out b/tests/invocation/broken-config-continues.out new file mode 100644 index 000000000..2b7a3d4fa --- /dev/null +++ b/tests/invocation/broken-config-continues.out @@ -0,0 +1,2 @@ +broken +but still going diff --git a/tests/invocation/command-1.invoke b/tests/invocation/command-1.invoke new file mode 100644 index 000000000..c6017229a --- /dev/null +++ b/tests/invocation/command-1.invoke @@ -0,0 +1 @@ +-c "echo 1.2.3.4." diff --git a/tests/invocation/command-1.out b/tests/invocation/command-1.out new file mode 100644 index 000000000..a99e7ac76 --- /dev/null +++ b/tests/invocation/command-1.out @@ -0,0 +1 @@ +1.2.3.4. diff --git a/tests/invocation/command-2.invoke b/tests/invocation/command-2.invoke new file mode 100644 index 000000000..8f8357a0b --- /dev/null +++ b/tests/invocation/command-2.invoke @@ -0,0 +1 @@ +-c "echo 1.2.3.4." -c "echo 5.6.7.8." diff --git a/tests/invocation/command-2.out b/tests/invocation/command-2.out new file mode 100644 index 000000000..c54ab6812 --- /dev/null +++ b/tests/invocation/command-2.out @@ -0,0 +1,2 @@ +1.2.3.4. +5.6.7.8. diff --git a/tests/invocation/command-vars-persist.invoke b/tests/invocation/command-vars-persist.invoke new file mode 100644 index 000000000..0d5653c70 --- /dev/null +++ b/tests/invocation/command-vars-persist.invoke @@ -0,0 +1 @@ +-c 'set foo bar' -c 'echo $foo' diff --git a/tests/invocation/command-vars-persist.out b/tests/invocation/command-vars-persist.out new file mode 100644 index 000000000..5716ca598 --- /dev/null +++ b/tests/invocation/command-vars-persist.out @@ -0,0 +1 @@ +bar diff --git a/tests/invocation/config-command-ordering.config b/tests/invocation/config-command-ordering.config new file mode 100644 index 000000000..426d81082 --- /dev/null +++ b/tests/invocation/config-command-ordering.config @@ -0,0 +1 @@ +echo in config.fish diff --git a/tests/invocation/config-command-ordering.invoke b/tests/invocation/config-command-ordering.invoke new file mode 100644 index 000000000..07cb6dbb8 --- /dev/null +++ b/tests/invocation/config-command-ordering.invoke @@ -0,0 +1 @@ +-c "echo command" -C "echo init-command" diff --git a/tests/invocation/config-command-ordering.out b/tests/invocation/config-command-ordering.out new file mode 100644 index 000000000..52cf61ca2 --- /dev/null +++ b/tests/invocation/config-command-ordering.out @@ -0,0 +1,3 @@ +in config.fish +init-command +command diff --git a/tests/invocation/config.config b/tests/invocation/config.config new file mode 100644 index 000000000..426d81082 --- /dev/null +++ b/tests/invocation/config.config @@ -0,0 +1 @@ +echo in config.fish diff --git a/tests/invocation/config.invoke b/tests/invocation/config.invoke new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/tests/invocation/config.invoke @@ -0,0 +1 @@ + diff --git a/tests/invocation/config.out b/tests/invocation/config.out new file mode 100644 index 000000000..5d7216610 --- /dev/null +++ b/tests/invocation/config.out @@ -0,0 +1 @@ +in config.fish diff --git a/tests/invocation/interactive.invoke b/tests/invocation/interactive.invoke new file mode 100644 index 000000000..06c3e83c0 --- /dev/null +++ b/tests/invocation/interactive.invoke @@ -0,0 +1,3 @@ +-c 'if status --is-login ; echo login shell ; else ; echo not login shell ; end' +-c 'if status --is-interactive ; echo interactive ; else ; echo not interactive ; end' +-i diff --git a/tests/invocation/interactive.out b/tests/invocation/interactive.out new file mode 100644 index 000000000..c48a43d55 --- /dev/null +++ b/tests/invocation/interactive.out @@ -0,0 +1,2 @@ +not login shell +interactive diff --git a/tests/invocation/login-interactive.invoke b/tests/invocation/login-interactive.invoke new file mode 100644 index 000000000..ee76e7744 --- /dev/null +++ b/tests/invocation/login-interactive.invoke @@ -0,0 +1,4 @@ +-c 'if status --is-login ; echo login shell ; else ; echo not login shell ; end' +-c 'if status --is-interactive ; echo interactive ; else ; echo not interactive ; end' +-l +-i diff --git a/tests/invocation/login-interactive.out b/tests/invocation/login-interactive.out new file mode 100644 index 000000000..c42db9392 --- /dev/null +++ b/tests/invocation/login-interactive.out @@ -0,0 +1,2 @@ +login shell +interactive diff --git a/tests/invocation/login.invoke b/tests/invocation/login.invoke new file mode 100644 index 000000000..243a5febf --- /dev/null +++ b/tests/invocation/login.invoke @@ -0,0 +1,3 @@ +-c 'if status --is-login ; echo login shell ; else ; echo not login shell ; end' +-c 'if status --is-interactive ; echo interactive ; else ; echo not interactive ; end' +-l diff --git a/tests/invocation/login.out b/tests/invocation/login.out new file mode 100644 index 000000000..7eae8bbf8 --- /dev/null +++ b/tests/invocation/login.out @@ -0,0 +1,2 @@ +login shell +not interactive diff --git a/tests/invocation/no-login-no-interactive.invoke b/tests/invocation/no-login-no-interactive.invoke new file mode 100644 index 000000000..36c8e494b --- /dev/null +++ b/tests/invocation/no-login-no-interactive.invoke @@ -0,0 +1,2 @@ +-c 'if status --is-login ; echo login shell ; else ; echo not login shell ; end' +-c 'if status --is-interactive ; echo interactive ; else ; echo not interactive ; end' diff --git a/tests/invocation/no-login-no-interactive.out b/tests/invocation/no-login-no-interactive.out new file mode 100644 index 000000000..fba174c40 --- /dev/null +++ b/tests/invocation/no-login-no-interactive.out @@ -0,0 +1,2 @@ +not login shell +not interactive diff --git a/tests/invocation/rc-returned.err b/tests/invocation/rc-returned.err new file mode 100644 index 000000000..1b7fe42bb --- /dev/null +++ b/tests/invocation/rc-returned.err @@ -0,0 +1 @@ +RC: 1 diff --git a/tests/invocation/rc-returned.invoke b/tests/invocation/rc-returned.invoke new file mode 100644 index 000000000..b7d0e4523 --- /dev/null +++ b/tests/invocation/rc-returned.invoke @@ -0,0 +1 @@ +-c 'false' diff --git a/tests/invocation/version.grep b/tests/invocation/version.grep new file mode 100644 index 000000000..7b52bc211 --- /dev/null +++ b/tests/invocation/version.grep @@ -0,0 +1 @@ +^fish, version diff --git a/tests/invocation/version.invoke b/tests/invocation/version.invoke new file mode 100644 index 000000000..2631539be --- /dev/null +++ b/tests/invocation/version.invoke @@ -0,0 +1 @@ +-v diff --git a/tests/invocation/version.out b/tests/invocation/version.out new file mode 100644 index 000000000..77d513348 --- /dev/null +++ b/tests/invocation/version.out @@ -0,0 +1 @@ +fish, version