[BACK]Return to minicheck.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / mit / expat / dist / tests

Annotation of src/external/mit/expat/dist/tests/minicheck.h, Revision 1.1.1.2.2.2

1.1.1.2.2.2! yamt        1: /* Miniature re-implementation of the "check" library.
        !             2:  *
        !             3:  * This is intended to support just enough of check to run the Expat
        !             4:  * tests.  This interface is based entirely on the portion of the
        !             5:  * check library being used.
        !             6:  *
        !             7:  * This is *source* compatible, but not necessary *link* compatible.
        !             8:  */
        !             9:
        !            10: #ifdef __cplusplus
        !            11: extern "C" {
        !            12: #endif
        !            13:
        !            14: #define CK_NOFORK 0
        !            15: #define CK_FORK   1
        !            16:
        !            17: #define CK_SILENT  0
        !            18: #define CK_NORMAL  1
        !            19: #define CK_VERBOSE 2
        !            20:
        !            21: /* Workaround for Microsoft's compiler and Tru64 Unix systems where the
        !            22:    C compiler has a working __func__, but the C++ compiler only has a
        !            23:    working __FUNCTION__.  This could be fixed in configure.in, but it's
        !            24:    not worth it right now. */
        !            25: #if defined (_MSC_VER) || (defined(__osf__) && defined(__cplusplus))
        !            26: #define __func__ __FUNCTION__
        !            27: #endif
        !            28:
        !            29: #define START_TEST(testname) static void testname(void) { \
        !            30:     _check_set_test_info(__func__, __FILE__, __LINE__);   \
        !            31:     {
        !            32: #define END_TEST } }
        !            33:
        !            34: #define fail(msg)  _fail_unless(0, __FILE__, __LINE__, msg)
        !            35:
        !            36: typedef void (*tcase_setup_function)(void);
        !            37: typedef void (*tcase_teardown_function)(void);
        !            38: typedef void (*tcase_test_function)(void);
        !            39:
        !            40: typedef struct SRunner SRunner;
        !            41: typedef struct Suite Suite;
        !            42: typedef struct TCase TCase;
        !            43:
        !            44: struct SRunner {
        !            45:     Suite *suite;
        !            46:     int nchecks;
        !            47:     int nfailures;
        !            48: };
        !            49:
        !            50: struct Suite {
        !            51:     char *name;
        !            52:     TCase *tests;
        !            53: };
        !            54:
        !            55: struct TCase {
        !            56:     char *name;
        !            57:     tcase_setup_function setup;
        !            58:     tcase_teardown_function teardown;
        !            59:     tcase_test_function *tests;
        !            60:     int ntests;
        !            61:     int allocated;
        !            62:     TCase *next_tcase;
        !            63: };
        !            64:
        !            65:
        !            66: /* Internal helper. */
        !            67: void _check_set_test_info(char const *function,
        !            68:                           char const *filename, int lineno);
        !            69:
        !            70:
        !            71: /*
        !            72:  * Prototypes for the actual implementation.
        !            73:  */
        !            74:
        !            75: void _fail_unless(int condition, const char *file, int line, char *msg);
        !            76: Suite *suite_create(char *name);
        !            77: TCase *tcase_create(char *name);
        !            78: void suite_add_tcase(Suite *suite, TCase *tc);
        !            79: void tcase_add_checked_fixture(TCase *,
        !            80:                                tcase_setup_function,
        !            81:                                tcase_teardown_function);
        !            82: void tcase_add_test(TCase *tc, tcase_test_function test);
        !            83: SRunner *srunner_create(Suite *suite);
        !            84: void srunner_run_all(SRunner *runner, int verbosity);
        !            85: int srunner_ntests_failed(SRunner *runner);
        !            86: void srunner_free(SRunner *runner);
        !            87:
        !            88: #ifdef __cplusplus
        !            89: }
        !            90: #endif

CVSweb <webmaster@jp.NetBSD.org>