aboutsummaryrefslogtreecommitdiff
path: root/tests/command
diff options
context:
space:
mode:
Diffstat (limited to 'tests/command')
-rw-r--r--tests/command/driver.cxx7
-rw-r--r--tests/command/testscript32
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
+ }
+}