home *** CD-ROM | disk | FTP | other *** search
- /*
- *****************************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright Taligent, Inc., 1996, 1997 *
- * (C) Copyright International Business Machines Corporation, 1999 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *****************************************************************************************
- */
-
-
- #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.
- */
- T_CTEST_EXPORT_API extern int ERROR_COUNT;
-
- /**
- * Set this to zero to disable log_verbose() messages, otherwise
- * nonzero to see log_verbose() messages.
- */
- T_CTEST_EXPORT_API extern int VERBOSITY;
- /**
- * Set this to zero to disable log_verbose() messages, otherwise
- * nonzero to see log_verbose() messages.
- */
- T_CTEST_EXPORT_API extern int ERR_MSG;
- /**
- * Show the names of all nodes.
- * @param root Subtree of tests.
- */
- T_CTEST_API void showTests ( const TestNode *root);
-
- /**
- * Run a subtree of tests.
- * @param root Subtree of tests.
- */
- 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'
- */
- T_CTEST_API void addTest ( TestNode** root,
- TestFunctionPtr test,
- const char *path);
-
- /**
- * 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.
- */
- T_CTEST_API const TestNode* getTest (const TestNode* root,
- const char *path);
-
-
- /**
- * Log an error message. (printf style)
- * @param pattern printf-style format string
- */
- T_CTEST_API void log_err(const char* pattern, ...);
-
- /**
- * Log an informational message. (printf style)
- * @param pattern printf-style format string
- */
- 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
- */
- 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
- */
-
- T_CTEST_API int processArgs(const TestNode* root,
- int argc,
- const char** argv);
-
-
-
-
- #endif
-