summaryrefslogtreecommitdiff
path: root/tests/fstree_sort.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fstree_sort.c')
-rw-r--r--tests/fstree_sort.c101
1 files changed, 0 insertions, 101 deletions
diff --git a/tests/fstree_sort.c b/tests/fstree_sort.c
deleted file mode 100644
index 40a270f..0000000
--- a/tests/fstree_sort.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* SPDX-License-Identifier: GPL-3.0-or-later */
-/*
- * fstree_sort.c
- *
- * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
- */
-#include "config.h"
-
-#include "fstree.h"
-#include "internal.h"
-#include "test.h"
-
-int main(void)
-{
- tree_node_t *a, *b, *c, *d;
- struct stat sb;
- fstree_t fs;
-
- memset(&fs, 0, sizeof(fs));
- memset(&sb, 0, sizeof(sb));
- sb.st_mode = S_IFBLK | 0600;
- sb.st_rdev = 1337;
-
- a = fstree_mknode(NULL, "a", 1, NULL, &sb);
- b = fstree_mknode(NULL, "b", 1, NULL, &sb);
- c = fstree_mknode(NULL, "c", 1, NULL, &sb);
- d = fstree_mknode(NULL, "d", 1, NULL, &sb);
- TEST_ASSERT(a != NULL && b != NULL && c != NULL && d != NULL);
-
- /* empty list */
- TEST_NULL(tree_node_list_sort(NULL));
-
- /* single element */
- TEST_ASSERT(tree_node_list_sort(a) == a);
- TEST_NULL(a->next);
-
- /* two elements, reverse order */
- b->next = a;
- TEST_ASSERT(tree_node_list_sort(b) == a);
- TEST_ASSERT(a->next == b);
- TEST_NULL(b->next);
-
- /* two elements, sorted order */
- TEST_ASSERT(tree_node_list_sort(a) == a);
- TEST_ASSERT(a->next == b);
- TEST_NULL(b->next);
-
- /* three elements, reverse order */
- c->next = b;
- b->next = a;
- a->next = NULL;
-
- TEST_ASSERT(tree_node_list_sort(c) == a);
- TEST_ASSERT(a->next == b);
- TEST_ASSERT(b->next == c);
- TEST_NULL(c->next);
-
- /* three elements, ordered */
- TEST_ASSERT(tree_node_list_sort(a) == a);
- TEST_ASSERT(a->next == b);
- TEST_ASSERT(b->next == c);
- TEST_NULL(c->next);
-
- /* four elements, reverse order */
- d->next = c;
- c->next = b;
- b->next = a;
- a->next = NULL;
-
- TEST_ASSERT(tree_node_list_sort(d) == a);
- TEST_ASSERT(a->next == b);
- TEST_ASSERT(b->next == c);
- TEST_ASSERT(c->next == d);
- TEST_NULL(d->next);
-
- /* four elements, sorted order */
- TEST_ASSERT(tree_node_list_sort(a) == a);
- TEST_ASSERT(a->next == b);
- TEST_ASSERT(b->next == c);
- TEST_ASSERT(c->next == d);
- TEST_NULL(d->next);
-
- /* force merge sort to go through LRLR pattern */
- b->next = a;
- a->next = d;
- d->next = c;
- c->next = NULL;
-
- TEST_ASSERT(tree_node_list_sort(b) == a);
- TEST_ASSERT(a->next == b);
- TEST_ASSERT(b->next == c);
- TEST_ASSERT(c->next == d);
- TEST_NULL(d->next);
-
- /* cleanup and done */
- free(a);
- free(b);
- free(c);
- free(d);
- return EXIT_SUCCESS;
-}