aboutsummaryrefslogtreecommitdiff
path: root/test/functional/fixtures/shell-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/fixtures/shell-test.c')
-rw-r--r--test/functional/fixtures/shell-test.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/functional/fixtures/shell-test.c b/test/functional/fixtures/shell-test.c
new file mode 100644
index 0000000000..5fa8a58049
--- /dev/null
+++ b/test/functional/fixtures/shell-test.c
@@ -0,0 +1,25 @@
+// A simple implementation of a shell for testing
+// `termopen([&sh, &shcf, '{cmd'}])` and `termopen([&sh])`.
+//
+// If launched with no arguments, prints "ready $ ", otherwise prints
+// "ready $ {cmd}\n".
+
+#include <stdio.h>
+#include <string.h>
+
+int main(int argc, char **argv)
+{
+ fprintf(stderr, "ready $ ");
+
+ if (argc == 3) {
+ // argv should be {"terminal-test", "EXE", "prog args..."}
+ if (strcmp(argv[1], "EXE") != 0) {
+ fprintf(stderr, "first argument must be 'EXE'\n");
+ return 2;
+ }
+
+ fprintf(stderr, "%s\n", argv[2]);
+ }
+
+ return 0;
+}