summaryrefslogtreecommitdiff
path: root/tests/obe_array_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/obe_array_test.c')
-rw-r--r--tests/obe_array_test.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/obe_array_test.c b/tests/obe_array_test.c
new file mode 100644
index 0000000..5439eec
--- /dev/null
+++ b/tests/obe_array_test.c
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2025 Johnny Richard <johnny@johnnyrichard.com>
+ *
+ * SPDX-License-Identifier: LGPL-3.0-or-later
+ *
+ * This file is part of obe.
+ *
+ * obe is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation, either version 3 of the License, or (at your option)
+ * any later version.
+ *
+ * obe is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with obe. If not, see <https://www.gnu.org/licenses/>.
+ */
+#include <check.h>
+#include <obe/arena.h>
+#include <obe/array.h>
+#include <stdlib.h>
+
+static obe_arena_t arena = { 0 };
+
+void
+setup(void)
+{
+}
+
+void
+teardown(void)
+{
+ obe_arena_release(&arena);
+}
+
+START_TEST(obe_array_append)
+{
+ int* arr = obe_array(&arena, int);
+
+ obe_array_append(arr, 1);
+ obe_array_append(arr, 2);
+ obe_array_append(arr, 3);
+ obe_array_append(arr, 4);
+ obe_array_append(arr, 5);
+
+ ck_assert_int_eq(obe_array_length(arr), 5);
+}
+END_TEST
+
+Suite*
+array_suite(void)
+{
+ Suite* s;
+ TCase* tc_append;
+
+ s = suite_create("Array");
+
+ tc_append = tcase_create("tc_append");
+
+ tcase_add_checked_fixture(tc_append, setup, teardown);
+
+ tcase_add_test(tc_append, obe_array_append);
+ suite_add_tcase(s, tc_append);
+
+ return s;
+}
+
+int
+main(void)
+{
+ int number_failed;
+ Suite* s;
+ SRunner* sr;
+
+ s = array_suite();
+ sr = srunner_create(s);
+
+ srunner_run_all(sr, CK_NORMAL);
+ number_failed = srunner_ntests_failed(sr);
+ srunner_free(sr);
+ return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}