summaryrefslogtreecommitdiffstats
path: root/02_exercise/process_test.c
diff options
context:
space:
mode:
authorStefan Zabka <zabkaste@hu-berlin.de>2020-05-21 23:37:38 +0200
committerStefan Zabka <zabkaste@hu-berlin.de>2020-05-21 23:37:38 +0200
commitf959165cdece3c1bfae8abce834a2bb78db96190 (patch)
treec8f060d804a0c8aed5cbba2bd37a5ecb114dc21b /02_exercise/process_test.c
parent45b35365a5d0f895caeb6178f5f0a70cfe4464ee (diff)
downloadbetriebssysteme-f959165cdece3c1bfae8abce834a2bb78db96190.tar.gz
betriebssysteme-f959165cdece3c1bfae8abce834a2bb78db96190.zip
Process parse_line working
Diffstat (limited to '02_exercise/process_test.c')
-rw-r--r--02_exercise/process_test.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/02_exercise/process_test.c b/02_exercise/process_test.c
new file mode 100644
index 0000000..89eb2fb
--- /dev/null
+++ b/02_exercise/process_test.c
@@ -0,0 +1,51 @@
+//
+// Created by stefan on 21.05.20.
+//
+#include "process.h"
+#include "array.h"
+#include <assert.h>
+#include <string.h>
+
+
+void test_simple_case() {
+ process * processes= NULL;
+ parse_line("cat my_txt ",&processes);
+ assert(arrayLen(processes) == 1);
+ assert(arrayLen(processes[0].argv) == 3);
+ assert(strcmp(processes[0].argv[0], "cat") == 0);
+ assert(strcmp(processes[0].argv[1], "my_txt") == 0);
+ free_processes(&processes);
+}
+
+void test_detatched() {
+ process * processes= NULL;
+ parse_line("cat my_txt &",&processes);
+ assert(arrayLen(processes) == 1);
+ assert(arrayLen(processes[0].argv) == 3);
+ assert(strcmp(processes[0].argv[0], "cat") == 0);
+ assert(strcmp(processes[0].argv[1], "my_txt") == 0);
+ assert(processes[0].blocking == false);
+ free_processes(&processes);
+}
+
+
+void test_pipe() {
+ process * processes= NULL;
+ parse_line("echo my_txt | grep txt",&processes);
+ assert(arrayLen(processes) == 2);
+ assert(arrayLen(processes[0].argv) == 3);
+ assert(strcmp(processes[0].argv[0], "echo") == 0);
+ assert(strcmp(processes[0].argv[1], "my_txt") == 0);
+ assert(processes[0].out_fd != 0);
+ assert(arrayLen(processes[1].argv) == 3);
+ assert(strcmp(processes[1].argv[0], "grep") == 0);
+ assert(strcmp(processes[1].argv[1], "txt") == 0);
+ assert(processes[1].in_fd != 0);
+ free_processes(&processes);
+}
+int main() {
+ test_simple_case();
+ test_detatched();
+ test_pipe();
+ return 0;
+} \ No newline at end of file