1
// ================================================================ //
3
// File : UnitTester.hxx //
4
// Purpose : unit testing - test one unit //
6
// Coded by Ralf Westram (coder@reallysoft.de) in February 2010 //
7
// Institute of Microbiology (Technical University Munich) //
8
// http://www.arb-home.de/ //
10
// ================================================================ //
12
#ifndef UNITTESTER_HXX
13
#define UNITTESTER_HXX
15
#ifndef _GLIBCXX_CSTDLIB
18
#ifndef _GLIBCXX_CSTDIO
22
typedef void (*UnitTest_function)();
27
TEST_FAILED_POSTCONDITION,
34
struct UnitTest_simple {
35
UnitTest_function fun;
39
void print_error(FILE *out, UnitTestResult result) const;
43
UnitTester(const char *libname, const UnitTest_simple *simple_tests, int warn_level, size_t skippedTests, const UnitTest_simple *postcond) __attribute__((noreturn));
46
UnitTestResult execute_guarded(UnitTest_function fun, long *duration_usec, long max_allowed_duration_ms, bool detect_environment_calls);
47
void sleepms(long ms);
49
// ------------------------------
50
// execution time limits
52
const long SECONDS = 1000;
53
const long MINUTES = 60*SECONDS;
55
#if defined(DEVEL_RALF)
57
const long MAX_EXEC_MS_NORMAL = 12 * SECONDS; // kill with segfault after time passed
58
const long MAX_EXEC_MS_SLOW = 60 * SECONDS; // same for slow tests
59
const long MAX_EXEC_MS_ENV = 80 * SECONDS; // same for environment setup/cleanup
60
const long MAX_EXEC_MS_VGSYS = 140 * SECONDS; // same for valgrinded system calls (especially pt_server)
62
const long WARN_SLOW_ABOVE_MS = 1 * SECONDS; // when too warn about slow test
64
#else // !defined(DEVEL_RALF)
66
// these are temporary test-timings to avoid test timeouts on jenkins build server
68
const long MAX_EXEC_MS_NORMAL = 30 * MINUTES; // kill with segfault after time passed
69
const long MAX_EXEC_MS_SLOW = 45 * MINUTES; // same for slow tests
70
const long MAX_EXEC_MS_ENV = 45 * MINUTES; // same for environment setup/cleanup
71
const long MAX_EXEC_MS_VGSYS = 45 * MINUTES; // same for valgrinded system calls (especially pt_server)
72
const long WARN_SLOW_ABOVE_MS = 30 * MINUTES; // when too warn about slow test
76
#define FLAGS_DIR "flags"
77
#define FLAGS_EXT "flag"
80
#error UnitTester.hxx included twice
81
#endif // UNITTESTER_HXX