xmlreaderimpl/support/expat-2.0.1/tests/minicheck.h
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 12 May 2015 12:20:53 +0100
changeset 296 ea3dbc023c80
parent 172 xmlreaderimpl/trunk/support/expat-2.0.1/tests/minicheck.h@b831df7d33f9
permissions -rw-r--r--
Post-convert fixes Removed intermediate `trunk` directories used for branching in SVN
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
172
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
/* Miniature re-implementation of the "check" library.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 *
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
 * This is intended to support just enough of check to run the Expat
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 * tests.  This interface is based entirely on the portion of the
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 * check library being used.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 *
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 * This is *source* compatible, but not necessary *link* compatible.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
#ifdef __cplusplus
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
extern "C" {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
#endif
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
#define CK_NOFORK 0
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
#define CK_FORK   1
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
#define CK_SILENT  0
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
#define CK_NORMAL  1
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
#define CK_VERBOSE 2
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
/* Workaround for Tru64 Unix systems where the C compiler has a working
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
   __func__, but the C++ compiler only has a working __FUNCTION__.  This
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
   could be fixed in configure.in, but it's not worth it right now. */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
#if defined(__osf__) && defined(__cplusplus)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
#define __func__ __FUNCTION__
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
#endif
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
#define START_TEST(testname) static void testname(void) { \
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    _check_set_test_info(__func__, __FILE__, __LINE__);   \
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
#define END_TEST } }
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
#define fail(msg)  _fail_unless(0, __FILE__, __LINE__, msg)
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
typedef void (*tcase_setup_function)(void);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
typedef void (*tcase_teardown_function)(void);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
typedef void (*tcase_test_function)(void);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
typedef struct SRunner SRunner;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
typedef struct Suite Suite;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
typedef struct TCase TCase;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
struct SRunner {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    Suite *suite;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    int nchecks;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    int nfailures;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
};
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
struct Suite {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    char *name;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    TCase *tests;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
};
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
struct TCase {
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    char *name;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    tcase_setup_function setup;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    tcase_teardown_function teardown;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    tcase_test_function *tests;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    int ntests;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    int allocated;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    TCase *next_tcase;
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
};
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
/* Internal helper. */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
void _check_set_test_info(char const *function,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
                          char const *filename, int lineno);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
/*
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
 * Prototypes for the actual implementation.
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
 */
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
void _fail_unless(int condition, const char *file, int line, char *msg);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
Suite *suite_create(char *name);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
TCase *tcase_create(char *name);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
void suite_add_tcase(Suite *suite, TCase *tc);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
void tcase_add_checked_fixture(TCase *,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
                               tcase_setup_function,
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
                               tcase_teardown_function);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
void tcase_add_test(TCase *tc, tcase_test_function test);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
SRunner *srunner_create(Suite *suite);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
void srunner_run_all(SRunner *runner, int verbosity);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
int srunner_ntests_failed(SRunner *runner);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
void srunner_free(SRunner *runner);
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
#ifdef __cplusplus
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
}
b831df7d33f9 Expat source code added
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
#endif