15 #ifndef INCG_IRIS_IUTEST_UTIL_TESTS_HPP_4095FF9B_D6B8_4CD3_BF86_43DFED1760EA_
16 #define INCG_IRIS_IUTEST_UTIL_TESTS_HPP_4095FF9B_D6B8_4CD3_BF86_43DFED1760EA_
20 #if IUTEST_HAS_TESTSUITE
21 # define IUTEST_CLASS_INITIALIZE(methodName) static void SetUpTestSuite() { methodName(); } static void methodName()
22 # define IUTEST_CLASS_CLEANUP(methodName) static void TearDownTestSuite() { methodName(); } static void methodName()
24 # define IUTEST_CLASS_INITIALIZE(methodName) static void SetUpTestCase() { methodName(); } static void methodName()
25 # define IUTEST_CLASS_CLEANUP(methodName) static void TearDownTestCase() { methodName(); } static void methodName()
28 #define IUTEST_METHOD_INITIALIZE(methodName) virtual void SetUp() IUTEST_CXX_OVERRIDE { methodName(); } void methodName()
29 #define IUTEST_METHOD_CLEANUP(methodName) virtual void TearDown() IUTEST_CXX_OVERRIDE { methodName(); } void methodName()
45 #if IUTEST_HAS_TESTSUITE
46 #if defined(IUTEST_REMOVE_LEGACY_TEST_CASEAPI_)
47 static void SetUpTestSuite() { T::SetUpTestCase(); }
48 static void TearDownTestSuite() { T::TearDownTestCase(); }
49 static void SetUpTestCase() {}
50 static void TearDownTestCase() {}
53 static void SetUpTestCase() { T::SetUpTestSuite(); }
54 static void TearDownTestCase() { T::TearDownTestSuite(); }
55 static void SetUpTestSuite() {}
56 static void TearDownTestSuite() {}
62 #if IUTEST_HAS_TESTSUITE
63 #if defined(IUTEST_REMOVE_LEGACY_TEST_CASEAPI_)
64 virtual void OnTestSuiteStart(const ::iutest::TestSuite& test_suite)
IUTEST_CXX_OVERRIDE { OnTestCaseStart(test_suite); }
65 virtual void OnTestCaseStart(const ::iutest::TestSuite& ) {}
66 virtual void OnTestSuiteEnd(const ::iutest::TestSuite& test_suite)
IUTEST_CXX_OVERRIDE { OnTestCaseEnd(test_suite); }
67 virtual void OnTestCaseEnd(const ::iutest::TestSuite& ) {}
70 virtual void OnTestSuiteStart(const ::iutest::TestCase& ) {}
71 virtual void OnTestCaseStart(const ::iutest::TestCase& test_case)
IUTEST_CXX_OVERRIDE { OnTestSuiteStart(test_case); }
72 virtual void OnTestSuiteEnd(const ::iutest::TestCase& ) {}
73 virtual void OnTestCaseEnd(const ::iutest::TestCase& test_case)
IUTEST_CXX_OVERRIDE { OnTestSuiteEnd(test_case); }
86 inline const ::iutest::TestSuite*
GetTestSuite(
int index)
88 #if IUTEST_HAS_TESTSUITE
89 return ::iutest::UnitTest::GetInstance()->GetTestSuite(index);
91 return ::iutest::UnitTest::GetInstance()->GetTestCase(index);
100 #if IUTEST_HAS_TESTSUITE
101 return ::iutest::UnitTest::GetInstance()->current_test_suite();
103 return ::iutest::UnitTest::GetInstance()->current_test_case();
112 #if IUTEST_HAS_TESTSUITE
113 return unit_test->current_test_suite();
115 return unit_test->current_test_case();
123 inline const ::std::string
GetTestSuiteName(const ::iutest::TestInfo* test_info)
125 #if IUTEST_HAS_TESTSUITE
126 return test_info->test_suite_name();
128 return test_info->test_case_name();
137 #if IUTEST_HAS_TESTSUITE
138 return ::iutest::UnitTest::GetInstance()->total_test_suite_count();
140 return ::iutest::UnitTest::GetInstance()->total_test_case_count();
149 #if IUTEST_HAS_TESTSUITE
150 return ::iutest::UnitTest::GetInstance()->successful_test_suite_count();
152 return ::iutest::UnitTest::GetInstance()->successful_test_case_count();
160 inline ::std::string
TestFullName(const ::iutest::TestInfo* test_info)
164 fullname += test_info->name();
174 const char*
const p = strrchr(name,
'/');
179 return ::std::string(name, p);
198 const char*
const pkg = strrchr(name,
'.');
200 const char*
const p1 = strchr(name,
'/');
219 inline const ::iutest::TestSuite*
FindTestSuite(
const char* testsuite_name)
221 if( testsuite_name == NULL )
226 for(
int i=0; i < testsuite_count; ++i )
229 if( strcmp(testsuite->name(), testsuite_name) == 0 )
242 inline const ::iutest::TestSuite*
FindParamTestSuite(
const char* testsuite_name, const ::iutest::TestSuite* begin=NULL)
244 if( testsuite_name == NULL )
252 for( ; i < testsuite_count; ++i )
255 if( testsuite == begin )
262 for( ; i < testsuite_count; ++i )
265 const char* testsuite_origin_name = strchr(testsuite->name(),
'/');
266 if( testsuite_origin_name != NULL )
268 if( strcmp(testsuite_origin_name+1, testsuite_name) == 0 )
282 inline const ::iutest::TestSuite*
FindTypedTestSuite(
const char* testsuite_name, const ::iutest::TestSuite* begin=NULL)
284 if( testsuite_name == NULL )
292 for( ; i < testsuite_count; ++i )
295 if( testsuite == begin )
302 for( ; i < testsuite_count; ++i )
305 if( testsuite != NULL )
307 const char* name = testsuite->name();
309 && strstr(name, testsuite_name) == name
310 && name[strlen(testsuite_name)] ==
'/' )
324 inline const ::iutest::TestSuite*
FindParamTypedTestSuite(
const char* testsuite_name, const ::iutest::TestSuite* begin=NULL)
326 if( testsuite_name == NULL )
334 for( ; i < testsuite_count; ++i )
337 if( testsuite == begin )
344 for( ; i < testsuite_count; ++i )
347 const char* name = strchr(testsuite->name(),
'/');
351 if( strstr(name, testsuite_name) == name
352 && name[strlen(testsuite_name)] ==
'/' )
364 inline const ::iutest::TestInfo*
FindTestInfo(const ::iutest::TestSuite* testsuite,
const char* testinfo_name)
366 if( testsuite == NULL || testinfo_name == NULL )
371 const int testinfo_count = testsuite->total_test_count();
372 for(
int i=0; i < testinfo_count; ++i )
374 const ::iutest::TestInfo* testinfo = testsuite->GetTestInfo(i);
375 if( strcmp(testinfo->name(), testinfo_name) == 0 )
386 inline const ::iutest::TestInfo*
FindTestInfo(
const char* testsuite_name,
const char* testinfo_name)
388 if( testsuite_name == NULL || testinfo_name == NULL )
392 const ::iutest::TestSuite* testsuite =
FindTestSuite(testsuite_name);
399 inline const ::iutest::TestInfo*
FindParamTestInfo(const ::iutest::TestSuite* testsuite,
const char* testinfo_name
400 , const ::iutest::TestInfo* begin=NULL)
402 if( testsuite == NULL || testinfo_name == NULL )
407 const int testinfo_count = testsuite->total_test_count();
411 for( ; i < testinfo_count; ++i )
413 const ::iutest::TestInfo* testinfo = testsuite->GetTestInfo(i);
414 if( testinfo == begin )
422 for( ; i < testinfo_count; ++i )
424 const ::iutest::TestInfo* testinfo = testsuite->GetTestInfo(i);
425 if( testinfo != NULL )
427 const char* name = testinfo->name();
429 && strstr(name, testinfo_name) == name
430 && name[strlen(testinfo_name)] ==
'/' )
442 inline const ::iutest::TestResult* TestResultPointer(const ::iutest::TestResult* result)
449 inline const ::iutest::TestResult* TestResultPointer(const ::iutest::TestResult& result)
459 #if !defined(IUTEST_NO_UNITEST_AD_HOC_TEST_RESULT_ACCESSOR)
471 #if !defined(IUTEST_NO_TESTCASE_AD_HOC_TEST_RESULT_ACCESSOR)
472 return TestResultPointer(test_suite->ad_hoc_test_result());
474 IUTEST_UNUSED_VAR(test_suite);
490 inline const ::iutest::TestResult*
GetTestResult(const ::iutest::TestInfo* test_info)
492 return TestResultPointer(test_info->result());
503 #if IUTEST_HAS_TESTCASE
505 inline const ::iutest::TestCase* GetTestCase(
int index) {
return GetTestSuite(index); }
507 inline const ::iutest::TestCase* GetCurrentTestCase(const ::iutest::UnitTest* unit_test) {
return GetCurrentTestSuite(unit_test); }
508 inline const ::std::string GetTestCaseName(const ::iutest::TestInfo* test_info) {
return GetTestSuiteName(test_info); }
514 inline const ::iutest::TestCase* FindTestCase(
const char* name) {
return FindTestSuite(name); }
516 inline const ::iutest::TestCase* FindParamTestCase(
const char* name, const ::iutest::TestCase* begin=NULL)
520 inline const ::iutest::TestCase* FindTypedTestCase(
const char* name, const ::iutest::TestCase* begin=NULL)
524 inline const ::iutest::TestCase* FindParamTypedTestCase(
const char* name, const ::iutest::TestCase* begin=NULL)
528 inline const ::iutest::TestResult* GetTestCaseAdHocResult(const ::iutest::TestCase* testcase)
532 inline const ::iutest::TestResult* GetCurrentTestCaseAdHocResult()
イベントリスナー
Definition: iutest_listener.hpp:64
テストベース
Definition: iutest_body.hpp:44
static UnitTest * GetInstance()
UnitTest インスタンスの取得
Definition: iutest_core.hpp:43
Definition: iutest_util_tests.hpp:62
Definition: iutest_util_tests.hpp:44
#define IUTEST_CXX_OVERRIDE
override definition
Definition: iutest_compiler.hpp:747
iutest utility namespace
Definition: iutest_util.hpp:36
const ::std::string GetTestSuiteName(const ::iutest::TestInfo *test_info)
Get TestSuite Name
Definition: iutest_util_tests.hpp:124
const ::iutest::TestSuite * GetTestSuite(int index)
Get TestSuite by index
Definition: iutest_util_tests.hpp:87
const ::iutest::TestSuite * FindTypedTestSuite(const char *testsuite_name, const ::iutest::TestSuite *begin=NULL)
Typed Test の TestSuite の検索
Definition: iutest_util_tests.hpp:283
const ::iutest::TestResult * GetTestResult(const ::iutest::TestInfo *test_info)
get test result
Definition: iutest_util_tests.hpp:491
inline ::std::string TestSuiteNameRemoveInstantiateAndIndexName(const char *name)
インスタンス名とインデックスを除いた TestSuite 名を取得
Definition: iutest_util_tests.hpp:196
const ::iutest::TestSuite * FindParamTypedTestSuite(const char *testsuite_name, const ::iutest::TestSuite *begin=NULL)
Type Parameter Test の TestSuite の検索
Definition: iutest_util_tests.hpp:325
const ::iutest::TestSuite * GetCurrentTestSuite()
現在の TestSuite を取得
Definition: iutest_util_tests.hpp:99
const ::iutest::TestResult * GetCurrentTestResult()
get test result
Definition: iutest_util_tests.hpp:499
int GetTotalTestSuiteCount()
Get total TestSuite count
Definition: iutest_util_tests.hpp:136
inline ::std::string TestNameRemoveIndexName(const char *name)
インデックスを除いたテスト名を取得
Definition: iutest_util_tests.hpp:173
const ::iutest::TestSuite * FindParamTestSuite(const char *testsuite_name, const ::iutest::TestSuite *begin=NULL)
TestSuite の検索
Definition: iutest_util_tests.hpp:243
int GetSuccessfulTestSuiteCount()
Get successful TestSuite count
Definition: iutest_util_tests.hpp:148
const ::iutest::TestResult * GetCurrentTestSuiteAdHocResult()
TestSuite の ad_hoc_test_result の取得
Definition: iutest_util_tests.hpp:483
const ::iutest::TestResult * GetAdHocTestResult()
ad_hoc_test_result の取得
Definition: iutest_util_tests.hpp:458
inline ::std::string TestSuiteNameRemoveIndexName(const char *name)
インデックスを除いた TestSuite 名を取得
Definition: iutest_util_tests.hpp:187
const ::iutest::TestInfo * FindParamTestInfo(const ::iutest::TestSuite *testsuite, const char *testinfo_name, const ::iutest::TestInfo *begin=NULL)
TestInfo の検索
Definition: iutest_util_tests.hpp:400
const ::iutest::TestResult * GetTestSuiteAdHocResult(const ::iutest::TestSuite *test_suite)
TestSuite の ad_hoc_test_result の取得
Definition: iutest_util_tests.hpp:470
inline ::std::string TestFullName(const ::iutest::TestInfo *test_info)
Get TestName
Definition: iutest_util_tests.hpp:161
const ::iutest::TestInfo * FindTestInfo(const ::iutest::TestSuite *testsuite, const char *testinfo_name)
TestInfo の検索
Definition: iutest_util_tests.hpp:365
const ::iutest::TestSuite * FindTestSuite(const char *testsuite_name)
TestSuite の検索
Definition: iutest_util_tests.hpp:220