diff options
Diffstat (limited to 'obt/unittest_base.h')
| -rw-r--r-- | obt/unittest_base.h | 65 |
1 files changed, 65 insertions, 0 deletions
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 <glib.h> +#include <stdio.h> + +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 |
