diff options
Diffstat (limited to 'tests/command')
-rw-r--r-- | tests/command/driver.cxx | 7 | ||||
-rw-r--r-- | tests/command/testscript | 32 |
2 files changed, 37 insertions, 2 deletions
diff --git a/tests/command/driver.cxx b/tests/command/driver.cxx index 39d38aa..ef07962 100644 --- a/tests/command/driver.cxx +++ b/tests/command/driver.cxx @@ -9,7 +9,8 @@ #include <string> #include <vector> #include <iostream> -#include <stdexcept> // invalid_argument +#include <stdexcept> // invalid_argument +#include <system_error> #endif // Other includes. @@ -245,7 +246,9 @@ main (int argc, const char* argv[]) cerr << e << endl; return 1; } - catch (const process_error& e) + // Also handles process_error exception (derived from system_error). + // + catch (const system_error& e) { cerr << e << endl; return 1; diff --git a/tests/command/testscript b/tests/command/testscript index bffe621..db9bb5c 100644 --- a/tests/command/testscript +++ b/tests/command/testscript @@ -153,3 +153,35 @@ end : $* "'$0' -C -S 10" 2>/~'%.+ exited with code 10%' == 10 } + +: builtin +: +{ + : no-cwd + : + { + $* 'touch a' &a; + test -f a + } + + : cwd + : + { + mkdir a; + $* -d a 'touch b' &a/b; + test -f a/b + } + + : redirect + : + { + $* 'echo abc >a' &a; + cat a >'abc' + } + + : callback + : + { + $* -p 'echo abc >a' >'echo abc >a' &a + } +} |