diff options
author | Stefan Zabka <zabkaste@hu-berlin.de> | 2020-05-24 12:09:46 +0200 |
---|---|---|
committer | Stefan Zabka <zabkaste@hu-berlin.de> | 2020-05-24 12:09:46 +0200 |
commit | 65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a (patch) | |
tree | 60af69be16926ef0f24ad2a954d9205ce9277450 /shell/process_test.c | |
parent | 3b7e61eab8ce5d230bc1b172942c1ab9459ed161 (diff) | |
download | betriebssysteme-65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a.tar.gz betriebssysteme-65966ded0cc15c5966c6568cf0ff2f2bbe1fc29a.zip |
Big remodelling
Diffstat (limited to 'shell/process_test.c')
-rw-r--r-- | shell/process_test.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/shell/process_test.c b/shell/process_test.c new file mode 100644 index 0000000..c14aa59 --- /dev/null +++ b/shell/process_test.c @@ -0,0 +1,63 @@ +#include <assert.h> +#include <string.h> + +#include "array.h" +#include "process.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_detached() { + 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); +} + +void test_ls(){ + Process *processes = NULL; + parse_line("ls", &processes); + assert(arrayLen(processes) == 1); + Process p = processes[0]; + assert(arrayLen(p.argv)==2); + assert(p.argc == 1); + assert(strcmp(p.argv[0], "ls") == 0); + assert(p.argc[p.argv] == NULL); + free_processes(&processes); +} + + +int main() { + test_ls(); + test_simple_case(); + test_detached(); + test_pipe(); + return 0; +} |