From 047a201498c4a108961a3d38e0707b78be378355 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 1 Sep 2013 14:54:51 -0400 Subject: Fix bugs and add unit tests for BSEARCH() Also adds running unit tests to the release/go script so we can be sure that all tests pass before we make a release. --- obt/unittest_base.h | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 obt/unittest_base.h (limited to 'obt/unittest_base.h') diff --git a/obt/unittest_base.h b/obt/unittest_base.h new file mode 100644 index 00000000..85106bb3 --- /dev/null +++ b/obt/unittest_base.h @@ -0,0 +1,65 @@ +#ifndef __obt_unittest_base_h +#define __obt_unittest_base_h + +#include +#include + +G_BEGIN_DECLS + +extern guint g_test_failures; +extern guint g_test_failures_at_test_start; +extern const gchar* g_active_test_suite; +extern const gchar* g_active_test_name; + +#define ADD_FAILURE() { ++g_test_failures; } + +#define FAILURE_AT() \ + fprintf(stderr, "Failure at %s:%u\n", __FILE__, __LINE__); \ + ADD_FAILURE(); + +#define EXPECT_BOOL_EQ(expected, actual) \ + if ((expected) != (actual)) { \ + FAILURE_AT(); \ + fprintf(stderr, "Expected: %s\nActual: %s\n", \ + ((expected) ? "true" : "false"), \ + ((actual) ? "true" : "false")); \ + } + +#define EXPECT_CHAR_EQ(expected, actual) \ + if ((expected) != (actual)) { \ + FAILURE_AT(); \ + fprintf(stderr, "Expected: %c\nActual: %c\n", (expected), (actual)); \ + } + +#define EXPECT_INT_EQ(expected, actual) \ + if ((expected) != (actual)) { \ + FAILURE_AT(); \ + fprintf(stderr, "Expected: %d\nActual: %d\n", (expected), (actual)); \ + } + +#define EXPECT_UINT_EQ(expected, actual) \ + if ((expected) != (actual)) { \ + FAILURE_AT(); \ + fprintf(stderr, "Expected: %u\nActual: %u\n", (expected), (actual)); \ + } + +#define EXPECT_STRING_EQ(expected, actual) \ + if ((expected) != (actual)) { \ + FAILURE_AT(); \ + fprintf(stderr, "Expected: %s\nActual: %s\n", \ + ((expected) ? (expected) : "NULL"), \ + ((actual) ? (actual) : NULL)); \ + } + +void unittest_start_suite(const char* suite_name); +void unittest_end_suite(); + +void unittest_start(const char* test_name); +void unittest_end(); + +#define TEST_START() unittest_start(__func__); +#define TEST_END() unittest_end(); + +G_END_DECLS + +#endif -- cgit v1.2.3