struct {
int passed;
int failed;
+ int skipped;
};
- int countings[2];
+ int countings[3];
};
union {
struct {
int total_passed;
int total_failed;
+ int total_skipped;
};
- int total_countings[2];
+ int total_countings[3];
};
} stats;
};
#define fmt_passed "[\x1b[32;49mPASS\x1b[0m]"
#define fmt_failed "[\x1b[31;49mFAIL\x1b[0m]"
+#define fmt_skiped "[\x1b[33;49mSKIP\x1b[0m]"
#define active_context \
({ extern struct test_context* __test_ctx; __test_ctx; })
#define _expect(expr, act, exp, type_fmt) \
do { \
+ if(should_skip_test()) { \
+ printf(" @%s:%03d ....... ", __FILE__, __LINE__); \
+ printf(fmt_skiped "\n"); \
+ active_context->stats.skipped++; \
+ break; \
+ } \
+ \
int failed = !(expr); \
- printf(" @%s:%03d ....... ", __FILE__, __LINE__); \
- if (failed) \
+ if (failed) { \
+ printf(" @%s:%03d ....... ", __FILE__, __LINE__); \
printf(fmt_failed " (expect: " type_fmt ", got: " type_fmt ")\n",\
exp, act); \
- else \
- printf(fmt_passed "\n"); \
+ } \
active_context->stats.countings[failed]++; \
} while(0)
void
run_test(int argc, const char* argv[]);
+static inline int
+should_skip_test()
+{
+ return active_context->stats.failed;
+}
+
#endif /* __COMMON_TEST_BASIC_H */
run_test(argc, argv);
printf(
- "All test done: %d passed, %d failed\n\n",
+ "All test done: %d passed, %d failed, %d skipped\n\n",
__test_ctx->stats.total_passed,
- __test_ctx->stats.total_failed
+ __test_ctx->stats.total_failed,
+ __test_ctx->stats.total_skipped
);
memchk_print_stats();
__test_ctx->name = name;
__test_ctx->stats.countings[0] = 0;
__test_ctx->stats.countings[1] = 0;
+ __test_ctx->stats.countings[2] = 0;
printf("%s\n", name);
}
void
end_testcase()
{
- printf("..... passed: %d, failed: %d\n\n",
- __test_ctx->stats.passed, __test_ctx->stats.failed);
+ printf("..... passed: %d, failed: %d, %d skipped\n\n",
+ __test_ctx->stats.passed,
+ __test_ctx->stats.failed,
+ __test_ctx->stats.skipped);
__test_ctx->stats.total_passed += __test_ctx->stats.passed;
__test_ctx->stats.total_failed += __test_ctx->stats.failed;
+ __test_ctx->stats.total_skipped += __test_ctx->stats.skipped;
__test_ctx->name = NULL;
}
\ No newline at end of file
struct btrie_node *root;
btrie_init(&tree, ilog2(WIDTH));
- expect_ulong(btrie_map(&tree, 0, 100, (void*)1), 0);
- expect_ulong(btrie_map(&tree, 0, 100, (void*)2), 1);
- expect_ulong(btrie_map(&tree, 0, 100, (void*)3), 2);
- expect_ulong(btrie_map(&tree, 0, 100, (void*)4), 3);
+ expect_long(btrie_map(&tree, 0, 100, (void*)1), 0);
+ expect_long(btrie_map(&tree, 0, 100, (void*)2), 1);
+ expect_long(btrie_map(&tree, 0, 100, (void*)3), 2);
+ expect_long(btrie_map(&tree, 0, 100, (void*)4), 3);
root = tree.btrie_root;
expect_notnull(root->children);
struct btrie_node *root;
btrie_init(&tree, ilog2(WIDTH));
- expect_ulong(btrie_map(&tree, 7, 100, (void*)1), 7);
- expect_ulong(btrie_map(&tree, 7, 100, (void*)2), 8);
- expect_ulong(btrie_map(&tree, 7, 100, (void*)3), 9);
- expect_ulong(btrie_map(&tree, 7, 100, (void*)4), 10);
+ expect_long(btrie_map(&tree, 7, 100, (void*)1), 7);
+ expect_long(btrie_map(&tree, 7, 100, (void*)2), 8);
+ expect_long(btrie_map(&tree, 7, 100, (void*)3), 9);
+ expect_long(btrie_map(&tree, 7, 100, (void*)4), 10);
root = tree.btrie_root;
expect_notnull(root->children);
struct btrie_node *root;
btrie_init(&tree, ilog2(WIDTH));
- expect_ulong(btrie_map(&tree, 4, 7, (void*)1), 4);
- expect_ulong(btrie_map(&tree, 4, 7, (void*)2), 5);
- expect_ulong(btrie_map(&tree, 4, 7, (void*)3), 6);
- expect_ulong(btrie_map(&tree, 4, 7, (void*)4), -1);
+ expect_long(btrie_map(&tree, 4, 7, (void*)1), 4);
+ expect_long(btrie_map(&tree, 4, 7, (void*)2), 5);
+ expect_long(btrie_map(&tree, 4, 7, (void*)3), 6);
+ expect_long(btrie_map(&tree, 4, 7, (void*)4), -1);
root = tree.btrie_root;
expect_notnull(root->children);
struct btrie_node *root;
btrie_init(&tree, ilog2(WIDTH));
- expect_ulong(btrie_map(&tree, 15, 17, (void*)1), 15);
- expect_ulong(btrie_map(&tree, 15, 17, (void*)2), 16);
- expect_ulong(btrie_map(&tree, 15, 17, (void*)3), -1);
+ expect_long(btrie_map(&tree, 15, 17, (void*)1), 15);
+ expect_long(btrie_map(&tree, 15, 17, (void*)2), 16);
+ expect_long(btrie_map(&tree, 15, 17, (void*)3), -1);
root = tree.btrie_root;
expect_notnull(root->children);
struct btrie_node *root;
btrie_init(&tree, ilog2(WIDTH));
- expect_ulong(btrie_map(&tree, 4, 7, (void*)1), 4);
- expect_ulong(btrie_map(&tree, 4, 7, (void*)2), 5);
- expect_ulong(btrie_map(&tree, 4, 7, (void*)3), 6);
+ expect_long(btrie_map(&tree, 4, 7, (void*)1), 4);
+ expect_long(btrie_map(&tree, 4, 7, (void*)2), 5);
+ expect_long(btrie_map(&tree, 4, 7, (void*)3), 6);
expect_ulong(__ptr(btrie_get(&tree, 6)), 3);
expect_ulong(__ptr(btrie_get(&tree, 5)), 2);