X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/7aadb1a2e7f4a8401693035a8d58d6dd4b670063..1d99ee650820bfaf0ac45cada8853c807f27bf52:/lunaix-os/tests/includes/testing/basic.h?ds=sidebyside diff --git a/lunaix-os/tests/includes/testing/basic.h b/lunaix-os/tests/includes/testing/basic.h index a81dc4f..ea2261b 100644 --- a/lunaix-os/tests/includes/testing/basic.h +++ b/lunaix-os/tests/includes/testing/basic.h @@ -13,35 +13,44 @@ struct test_context 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) @@ -88,4 +97,10 @@ end_testcase(); void run_test(int argc, const char* argv[]); +static inline int +should_skip_test() +{ + return active_context->stats.failed; +} + #endif /* __COMMON_TEST_BASIC_H */