diff options
author | Jing Yu <jingyu@google.com> | 2012-02-15 16:16:33 -0800 |
---|---|---|
committer | Jing Yu <jingyu@google.com> | 2012-02-15 16:16:33 -0800 |
commit | 40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 (patch) | |
tree | 7b5b3c5c4ac70d6921c8fb86073effa617e810b7 /expat-2.0.1/tests/minicheck.h | |
parent | 23b634bf690b4bb78eca0e813b8a678f8d0a45ae (diff) | |
download | expat-40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5.tar.gz |
expat package for building gdb-7.3HEADndk-r23-beta6ndk-r23-beta5ndk-r23-beta4ndk-r23-beta3ndk-r23-beta2ndk-r23-beta1ndk-r22-beta1ndk-r22ndk-r21endk-r21dndk-r21cndk-r21bndk-r21-rc1ndk-r21-beta2ndk-r21-beta1ndk-r21ndk-r20bndk-r20-beta3ndk-r20-beta2ndk-r20-beta1ndk-r20ndk-r19cndk-r19bndk-r19-beta2ndk-r19-beta1ndk-r19ndk-r18bndk-r18-beta2ndk-r18-beta1ndk-r17bndk-r17-beta2ndk-r17-beta1ndk-r17ndk-r16-beta2ndk-r16-beta1ndk-r16ndk-r15-beta2ndk-r15-beta1ndk-r14-beta2ndk-r14-beta1ndk-r14ndk-r13-beta2ndk-r13-beta1ndk-r13ndk-r12bndk-r12-beta2ndk-r12-beta1ndk-r11cndk-r11bndk-r11ndk-release-r23ndk-release-r22ndk-release-r21ndk-release-r20ndk-release-r19ndk-release-r18ndk-release-r17ndk-release-r16ndk-r16-releasendk-r15-releasendk-r14-releasendk-r13-releasendk-r12-releasendk-r11-releasemastermainbusytown-mac1010-releasebusytown-mac1008-release
Change-Id: Ia89f7f620935c3af8589fb220016e6bd940f46f1
Diffstat (limited to 'expat-2.0.1/tests/minicheck.h')
-rw-r--r-- | expat-2.0.1/tests/minicheck.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/expat-2.0.1/tests/minicheck.h b/expat-2.0.1/tests/minicheck.h new file mode 100644 index 0000000..f846bea --- /dev/null +++ b/expat-2.0.1/tests/minicheck.h @@ -0,0 +1,89 @@ +/* Miniature re-implementation of the "check" library. + * + * This is intended to support just enough of check to run the Expat + * tests. This interface is based entirely on the portion of the + * check library being used. + * + * This is *source* compatible, but not necessary *link* compatible. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define CK_NOFORK 0 +#define CK_FORK 1 + +#define CK_SILENT 0 +#define CK_NORMAL 1 +#define CK_VERBOSE 2 + +/* Workaround for Tru64 Unix systems where the C compiler has a working + __func__, but the C++ compiler only has a working __FUNCTION__. This + could be fixed in configure.in, but it's not worth it right now. */ +#if defined(__osf__) && defined(__cplusplus) +#define __func__ __FUNCTION__ +#endif + +#define START_TEST(testname) static void testname(void) { \ + _check_set_test_info(__func__, __FILE__, __LINE__); \ + { +#define END_TEST } } + +#define fail(msg) _fail_unless(0, __FILE__, __LINE__, msg) + +typedef void (*tcase_setup_function)(void); +typedef void (*tcase_teardown_function)(void); +typedef void (*tcase_test_function)(void); + +typedef struct SRunner SRunner; +typedef struct Suite Suite; +typedef struct TCase TCase; + +struct SRunner { + Suite *suite; + int nchecks; + int nfailures; +}; + +struct Suite { + char *name; + TCase *tests; +}; + +struct TCase { + char *name; + tcase_setup_function setup; + tcase_teardown_function teardown; + tcase_test_function *tests; + int ntests; + int allocated; + TCase *next_tcase; +}; + + +/* Internal helper. */ +void _check_set_test_info(char const *function, + char const *filename, int lineno); + + +/* + * Prototypes for the actual implementation. + */ + +void _fail_unless(int condition, const char *file, int line, char *msg); +Suite *suite_create(char *name); +TCase *tcase_create(char *name); +void suite_add_tcase(Suite *suite, TCase *tc); +void tcase_add_checked_fixture(TCase *, + tcase_setup_function, + tcase_teardown_function); +void tcase_add_test(TCase *tc, tcase_test_function test); +SRunner *srunner_create(Suite *suite); +void srunner_run_all(SRunner *runner, int verbosity); +int srunner_ntests_failed(SRunner *runner); +void srunner_free(SRunner *runner); + +#ifdef __cplusplus +} +#endif |