mumble

A Lisp written in C, following the *Build Your Own Lisp* book
Log | Files | Refs | README

ptest.h (688B)


      1 #ifndef ptest_h
      2 #define ptest_h
      3 
      4 #include <string.h>
      5 
      6 #define PT_SUITE(name) void name(void)
      7 
      8 #define PT_FUNC(name) static void name(void)
      9 #define PT_REG(name) pt_add_test(name, #name)
     10 #define PT_TEST(name) auto void name(void); PT_REG(name); void name(void)
     11 
     12 #define PT_ASSERT(expr) pt_assert_run((int)(expr), #expr, __FILE__, __LINE__)
     13 #define PT_ASSERT_STR_EQ(fst, snd) pt_assert_run(strcmp(fst, snd) == 0, "strcmp( " #fst ", " #snd " ) == 0", __FILE__, __LINE__)
     14 
     15 void pt_assert_run(int result, const char* expr, const char* file, int line);
     16 
     17 void pt_add_test(void (*func)(void), const char* name, const char* suite);
     18 void pt_add_suite(void (*func)(void));
     19 int pt_run(void);
     20 
     21 #endif
     22