Index: icu46/source/tools/ctestfw/unicode/ctest.h |
=================================================================== |
--- icu46/source/tools/ctestfw/unicode/ctest.h (revision 0) |
+++ icu46/source/tools/ctestfw/unicode/ctest.h (revision 0) |
@@ -0,0 +1,302 @@ |
+/* |
+ ******************************************************************************** |
+ * |
+ * Copyright (C) 1996-2010, 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 int (U_CALLCONV *ArgHandlerPtr)(int arg, int argc, const char* const argv[], void *context); |
+typedef struct TestNode TestNode; |
+U_CDECL_END |
+ |
+/** |
+ * This is use to set or get the option value for REPEAT_TESTS. |
+ * Use with set/getTestOption(). |
+ * |
+ * @internal |
+ */ |
+#define REPEAT_TESTS_OPTION 1 |
+ |
+/** |
+ * This is use to set or get the option value for VERBOSITY. |
+ * When option is set to zero to disable log_verbose() messages. |
+ * Otherwise nonzero to see log_verbose() messages. |
+ * Use with set/getTestOption(). |
+ * |
+ * @internal |
+ */ |
+#define VERBOSITY_OPTION 2 |
+ |
+/** |
+ * This is use to set or get the option value for ERR_MSG. |
+ * Use with set/getTestOption(). |
+ * |
+ * @internal |
+ */ |
+#define ERR_MSG_OPTION 3 |
+ |
+/** |
+ * This is use to set or get the option value for QUICK. |
+ * When option is zero, disable some of the slower tests. |
+ * Otherwise nonzero to run the slower tests. |
+ * Use with set/getTestOption(). |
+ * |
+ * @internal |
+ */ |
+#define QUICK_OPTION 4 |
+ |
+/** |
+ * This is use to set or get the option value for WARN_ON_MISSING_DATA. |
+ * When option is nonzero, warn on missing data. |
+ * Otherwise, errors are propagated when data is not available. |
+ * Affects the behavior of log_dataerr. |
+ * Use with set/getTestOption(). |
+ * |
+ * @see log_data_err |
+ * @internal |
+ */ |
+#define WARN_ON_MISSING_DATA_OPTION 5 |
+ |
+/** |
+ * This is use to set or get the option value for ICU_TRACE. |
+ * ICU tracing level, is set by command line option. |
+ * Use with set/getTestOption(). |
+ * |
+ * @internal |
+ */ |
+#define ICU_TRACE_OPTION 6 |
+ |
+/** |
+ * Maximum amount of memory uprv_malloc should allocate before returning NULL. |
+ * |
+ * @internal |
+ */ |
+extern T_CTEST_EXPORT_API size_t MAX_MEMORY_ALLOCATION; |
+ |
+/** |
+ * If memory tracing was enabled, contains the number of unfreed allocations. |
+ * |
+ * @internal |
+ */ |
+extern T_CTEST_EXPORT_API int32_t ALLOCATION_COUNT; |
+ |
+/** |
+ * Pass to setTestOption to decrement the test option value. |
+ * |
+ * @internal |
+ */ |
+#define DECREMENT_OPTION_VALUE -99 |
+ |
+/** |
+ * Gets the test option set on commandline. |
+ * |
+ * @param testOption macro definition for the individual test option |
+ * @return value of test option, zero if option is not set or off |
+ * @internal Internal APIs for testing purpose only |
+ */ |
+T_CTEST_API int32_t T_CTEST_EXPORT2 |
+getTestOption ( int32_t testOption ); |
+ |
+/** |
+ * Sets the test option with value given on commandline. |
+ * |
+ * @param testOption macro definition for the individual test option |
+ * @param value to set the test option to |
+ * @internal Internal APIs for testing purpose only |
+ */ |
+T_CTEST_API void T_CTEST_EXPORT2 |
+setTestOption ( int32_t testOption, int32_t value); |
+ |
+/** |
+ * 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, ...); |
+ |
+T_CTEST_API void T_CTEST_EXPORT2 |
+log_err_status(UErrorCode status, 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, ...); |
+ |
+/** |
+ * Initialize the variables above. This allows the test to set up accordingly |
+ * before running the tests. |
+ * This must be called before runTests. |
+ */ |
+T_CTEST_API int T_CTEST_EXPORT2 |
+initArgs( int argc, const char* const argv[], ArgHandlerPtr argHandler, void *context); |
+ |
+/** |
+ * 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 |
+runTestRequest(const TestNode* root, |
+ int argc, |
+ const char* const argv[]); |
+ |
+ |
+T_CTEST_API const char* T_CTEST_EXPORT2 |
+getTestName(void); |
+ |
+/** |
+ * Append a time delta to str if it is significant (>5 ms) otherwise no change |
+ * @param delta a delta in millis |
+ * @param str a string to append to. |
+ */ |
+T_CTEST_API void T_CTEST_EXPORT2 |
+str_timeDelta(char *str, UDate delta); |
+ |
+ |
+/* ======== XML (JUnit output) ========= */ |
+ |
+/** |
+ * Set the filename for the XML output. |
+ * @param fileName file name. Caller must retain storage. |
+ * @return 0 on success, 1 on failure. |
+ */ |
+T_CTEST_API int32_t T_CTEST_EXPORT2 |
+ctest_xml_setFileName(const char *fileName); |
+ |
+ |
+/** |
+ * Init XML subsystem. Call ctest_xml_setFileName first |
+ * @param rootName the test root name to be written |
+ * @return 0 on success, 1 on failure. |
+ */ |
+T_CTEST_API int32_t T_CTEST_EXPORT2 |
+ctest_xml_init(const char *rootName); |
+ |
+ |
+/** |
+ * Set the filename for the XML output. Caller must retain storage. |
+ * @return 0 on success, 1 on failure. |
+ */ |
+T_CTEST_API int32_t T_CTEST_EXPORT2 |
+ctest_xml_fini(void); |
+ |
+ |
+/** |
+ * report a test case |
+ * @return 0 on success, 1 on failure. |
+ */ |
+T_CTEST_API int32_t |
+T_CTEST_EXPORT2 |
+ctest_xml_testcase(const char *classname, const char *name, const char *time, const char *failMsg); |
+ |
+#endif |
Property changes on: icu46/source/tools/ctestfw/unicode/ctest.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |