b7ae145f93
X-SVN-Rev: 16019
200 lines
5.4 KiB
C
200 lines
5.4 KiB
C
/*
|
|
********************************************************************************
|
|
*
|
|
* Copyright (C) 1996-2004, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
*
|
|
********************************************************************************
|
|
*/
|
|
|
|
#ifndef CTEST_H
|
|
#define CTEST_H
|
|
|
|
#include "unicode/testtype.h"
|
|
#include "unicode/utrace.h"
|
|
|
|
|
|
/* prototypes *********************************/
|
|
|
|
U_CDECL_BEGIN
|
|
typedef void (U_CALLCONV *TestFunctionPtr)(void);
|
|
typedef struct TestNode TestNode;
|
|
U_CDECL_END
|
|
|
|
/**
|
|
* Set this to zero to disable log_verbose() messages.
|
|
* Otherwise nonzero to see log_verbose() messages.
|
|
*
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
extern T_CTEST_EXPORT_API int REPEAT_TESTS;
|
|
|
|
/**
|
|
* Set this to zero to disable log_verbose() messages.
|
|
* Otherwise nonzero to see log_verbose() messages.
|
|
*
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
extern T_CTEST_EXPORT_API 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
|
|
*/
|
|
extern T_CTEST_EXPORT_API int ERR_MSG;
|
|
|
|
/**
|
|
* Set this to zero to disable some of the slower tests.
|
|
* Otherwise nonzero to run the slower tests.
|
|
*
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
extern T_CTEST_EXPORT_API int QUICK;
|
|
|
|
/**
|
|
* Set this to nonzero to warn (not error) on missing data.
|
|
* Otherwise, zero will cause an error to be propagated when data is not available.
|
|
* Affects the behavior of log_dataerr.
|
|
*
|
|
* @see log_data_err
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
extern T_CTEST_EXPORT_API int WARN_ON_MISSING_DATA;
|
|
|
|
/**
|
|
* ICU tracing level, is set by command line option
|
|
*
|
|
* @internal
|
|
*/
|
|
extern T_CTEST_EXPORT_API UTraceLevel ICU_TRACE;
|
|
|
|
/**
|
|
* Show the names of all nodes.
|
|
*
|
|
* @param root Subtree of tests.
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
T_CTEST_API void T_CTEST_EXPORT2
|
|
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 T_CTEST_EXPORT2
|
|
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 T_CTEST_EXPORT2
|
|
addTest(TestNode** root,
|
|
TestFunctionPtr test,
|
|
const char *path);
|
|
|
|
/**
|
|
* Clean up any allocated memory.
|
|
* Conditions for calling this function are the same as u_cleanup().
|
|
* @see u_cleanup
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
T_CTEST_API void T_CTEST_EXPORT2
|
|
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* T_CTEST_EXPORT2
|
|
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 T_CTEST_EXPORT2
|
|
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 T_CTEST_EXPORT2
|
|
log_info(const char* pattern, ...);
|
|
|
|
/**
|
|
* Log an informational message. (vprintf style)
|
|
* @param prefix a string that is output before the pattern and without formatting
|
|
* @param pattern printf-style format string
|
|
* @param ap variable-arguments list
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
T_CTEST_API void T_CTEST_EXPORT2
|
|
vlog_info(const char *prefix, const char *pattern, va_list ap);
|
|
|
|
/**
|
|
* 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 T_CTEST_EXPORT2
|
|
log_verbose(const char* pattern, ...);
|
|
|
|
/**
|
|
* Log an error message concerning missing data. (printf style)
|
|
* If WARN_ON_MISSING_DATA is nonzero, this will case a log_info (warning) to be
|
|
* printed, but if it is zero this will produce an error (log_err).
|
|
* @param pattern printf-style format string
|
|
* @internal Internal APIs for testing purpose only
|
|
*/
|
|
T_CTEST_API void T_CTEST_EXPORT2
|
|
log_data_err(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 T_CTEST_EXPORT2
|
|
processArgs(const TestNode* root,
|
|
int argc,
|
|
const char* const argv[]);
|
|
|
|
|
|
T_CTEST_API const char* T_CTEST_EXPORT2
|
|
getTestName(void);
|
|
|
|
|
|
|
|
#endif
|