From d766a9b089aefff63bca3e9914f5332af65efd12 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Wed, 19 Jun 2019 16:07:55 +0200 Subject: Add unit tests Signed-off-by: David Oberhollenzer --- tests/mknode_dir.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tests/mknode_dir.c (limited to 'tests/mknode_dir.c') diff --git a/tests/mknode_dir.c b/tests/mknode_dir.c new file mode 100644 index 0000000..5efe7a8 --- /dev/null +++ b/tests/mknode_dir.c @@ -0,0 +1,55 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +#include "fstree.h" + +#include +#include +#include + +int main(void) +{ + tree_node_t *root, *a, *b; + struct stat sb; + fstree_t fs; + + memset(&fs, 0, sizeof(fs)); + memset(&sb, 0, sizeof(sb)); + sb.st_mode = S_IFDIR | 0654; + sb.st_uid = 123; + sb.st_gid = 456; + sb.st_rdev = 789; + sb.st_size = 4096; + + root = fstree_mknode(&fs, NULL, "rootdir", 7, (void *)0x100, &sb); + assert(root->uid == sb.st_uid); + assert(root->gid == sb.st_gid); + assert(root->mode == sb.st_mode); + assert((char *)root->name >= (char *)root->payload); + assert((char *)root->data.dir >= (char *)root->payload); + assert(root->name >= (char *)(root->data.dir + 1)); + assert(strcmp(root->name, "rootdir") == 0); + assert(root->data.dir->children == NULL); + assert(root->parent == NULL); + assert(root->next == NULL); + + a = fstree_mknode(&fs, root, "adir", 4, (void *)0x100, &sb); + assert(a->parent == root); + assert(a->next == NULL); + assert(root->data.dir->children == a); + assert(root->parent == NULL); + assert(root->next == NULL); + + b = fstree_mknode(&fs, root, "bdir", 4, (void *)0x100, &sb); + assert(a->parent == root); + assert(b->parent == root); + assert(root->data.dir->children == b); + assert(b->next == a); + assert(a->next == NULL); + assert(root->parent == NULL); + assert(root->next == NULL); + + free(root); + free(a); + free(b); + + return EXIT_SUCCESS; +} -- cgit v1.2.3