| /* |
| ***************************************************************************************** |
| * |
| * Copyright (C) 1996-2000, International Business Machines |
| * Corporation and others. All Rights Reserved. |
| * |
| ***************************************************************************************** |
| */ |
| |
| |
| #ifndef CTEST_H |
| #define CTEST_H |
| |
| |
| /*Deals with imports and exports of the dynamic library*/ |
| #ifdef _WIN32 |
| #define T_CTEST_EXPORT __declspec(dllexport) |
| #define T_CTEST_IMPORT __declspec(dllimport) |
| #else |
| #define T_CTEST_EXPORT |
| #define T_CTEST_IMPORT |
| #endif |
| |
| #ifdef __cplusplus |
| #define C_CTEST_API extern "C" |
| #else |
| #define C_CTEST_API |
| #endif |
| |
| #ifdef T_CTEST_IMPLEMENTATION |
| #define T_CTEST_API C_CTEST_API T_CTEST_EXPORT |
| #define T_CTEST_EXPORT_API T_CTEST_EXPORT |
| #else |
| #define T_CTEST_API C_CTEST_API T_CTEST_IMPORT |
| #define T_CTEST_EXPORT_API T_CTEST_IMPORT |
| #endif |
| |
| |
| |
| /* True and false for sanity. (removes ICU dependancy) */ |
| |
| #ifndef FALSE |
| #define FALSE 0 |
| #endif |
| #ifndef TRUE |
| #define TRUE 1 |
| #endif |
| |
| |
| |
| |
| /* prototypes *********************************/ |
| |
| typedef void (*TestFunctionPtr)(); |
| typedef struct TestNode TestNode; |
| |
| /** |
| * Count of errors from all tests. |
| * May be reset. |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_EXPORT_API extern int ERROR_COUNT; |
| |
| /** |
| * Set this to zero to disable log_verbose() messages. |
| * Otherwise nonzero to see log_verbose() messages. |
| * @internal Internal APIs for testing purpose only |
| * |
| */ |
| T_CTEST_EXPORT_API extern int VERBOSITY; |
| |
| /** |
| * Set this to zero to disable log_verbose() messages. |
| * Otherwise nonzero to see log_verbose() messages. |
| * @internal Internal APIs for testing purpose only |
| * |
| */ |
| T_CTEST_EXPORT_API extern int ERR_MSG; |
| |
| /** |
| * Show the names of all nodes. |
| * |
| * @param root Subtree of tests. |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API void showTests ( const TestNode *root); |
| |
| /** |
| * Run a subtree of tests. |
| * |
| * @param root Subtree of tests. |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API void runTests ( const TestNode* root); |
| |
| /** |
| * Add a test to the subtree. |
| * Example usage: |
| * <PRE> |
| * TestNode* root=NULL; |
| * addTest(&root, &mytest, "/a/b/mytest" ); |
| * </PRE> |
| * @param root Pointer to the root pointer. |
| * @param test Pointer to 'void function(void)' for actual test. |
| * @param path Path from root under which test will be placed. Ex. '/a/b/mytest' |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API void addTest ( TestNode** root, |
| TestFunctionPtr test, |
| const char *path); |
| |
| T_CTEST_API void cleanUpTestTree(TestNode *tn); |
| |
| /** |
| * Retreive a specific subtest. (subtree). |
| * |
| * @param root Pointer to the root. |
| * @param path Path relative to the root, Ex. '/a/b' |
| * @return The subtest, or NULL on failure. |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API const TestNode* getTest (const TestNode* root, |
| const char *path); |
| |
| |
| /** |
| * Log an error message. (printf style) |
| * @param pattern printf-style format string |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API void log_err(const char* pattern, ...); |
| |
| /** |
| * Log an informational message. (printf style) |
| * @param pattern printf-style format string |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API void log_info(const char* pattern, ...); |
| |
| /** |
| * Log a verbose informational message. (printf style) |
| * This message will only appear if the global VERBOSITY is nonzero |
| * @param pattern printf-style format string |
| * @internal Internal APIs for testing purpose only |
| */ |
| T_CTEST_API void log_verbose(const char* pattern, ...); |
| |
| /** |
| * Processes the command line arguments. |
| * This is a sample implementation |
| * <PRE>Usage: %s [ -l ] [ -v ] [ -? ] [ /path/to/test ] |
| * -l List only, do not run\ |
| * -v turn OFF verbosity |
| * -? print this message</PRE> |
| * @param root Testnode root with tests already attached to it |
| * @param argv argument list from main (stdio.h) |
| * @param argc argument list count from main (stdio.h) |
| * @return positive for error count, 0 for success, negative for illegal argument |
| * @internal Internal APIs for testing purpose only |
| */ |
| |
| T_CTEST_API int processArgs(const TestNode* root, |
| int argc, |
| const char* const argv[]); |
| |
| |
| |
| |
| #endif |