From d12eb47b25f0a5acbccfbc82fd8de19687c5c647 Mon Sep 17 00:00:00 2001 From: Nathan Fisher Date: Fri, 15 Sep 2023 19:15:01 -0400 Subject: [PATCH] Add tests for creating fifo and device nodes --- test/Makefile | 2 ++ test/create_dev_node.c | 20 ++++++++++++++++++++ test/create_fifo_node.c | 22 ++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 test/create_dev_node.c create mode 100644 test/create_fifo_node.c diff --git a/test/Makefile b/test/Makefile index d782c20..df2c65c 100644 --- a/test/Makefile +++ b/test/Makefile @@ -67,6 +67,8 @@ tests += linkmap_init tests += linkmap_put tests += create_dir_node tests += create_symlink_node +tests += create_fifo_node +tests += create_dev_node total != echo $(tests) | wc -w | awk '{ print $$1 }' diff --git a/test/create_dev_node.c b/test/create_dev_node.c new file mode 100644 index 0000000..015ca01 --- /dev/null +++ b/test/create_dev_node.c @@ -0,0 +1,20 @@ +#include +#include + +#include "haggis.h" + +int main() { + haggis_linkmap *map; + haggis_node *node; + char *path = "/dev/null"; + + map = haggis_linkmap_init(); + assert(map != NULL); + node = haggis_create_node(path, sha256, map); + assert(node->filetype.tag == character || node->filetype.tag == block); + assert(node->filetype.f_type.dev.major.val == 1); + assert(node->filetype.f_type.dev.minor.val == 3); + haggis_node_deinit(node); + haggis_linkmap_deinit(map); + return 0; +} \ No newline at end of file diff --git a/test/create_fifo_node.c b/test/create_fifo_node.c new file mode 100644 index 0000000..5ddba89 --- /dev/null +++ b/test/create_fifo_node.c @@ -0,0 +1,22 @@ +#include +#include +#include +#include + +#include "haggis.h" + +int main() { + haggis_linkmap *map; + haggis_node *node; + char *path = "output/fifo"; + + map = haggis_linkmap_init(); + assert(map != NULL); + assert(mkfifo(path, 0644) == 0); + node = haggis_create_node(path, sha256, map); + assert(node->filetype.tag == fifo); + assert(memcmp(path, node->name.name, 11) == 0); + haggis_node_deinit(node); + haggis_linkmap_deinit(map); + return 0; +} \ No newline at end of file