Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
Home
Manual
API Reference
Download
Bugzilla
Groups
Namespace List
Class List
File List
Examples
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
mitkTestingMacros.h
Go to the documentation of this file.
1
/*===================================================================
2
3
The Medical Imaging Interaction Toolkit (MITK)
4
5
Copyright (c) German Cancer Research Center,
6
Division of Medical and Biological Informatics.
7
All rights reserved.
8
9
This software is distributed WITHOUT ANY WARRANTY; without
10
even the implied warranty of MERCHANTABILITY or FITNESS FOR
11
A PARTICULAR PURPOSE.
12
13
See LICENSE.txt or http://www.mitk.org for details.
14
15
===================================================================*/
16
17
#ifndef mitkTestingMacros_h
18
#define mitkTestingMacros_h
19
20
#include <exception>
21
#include <iostream>
22
#include <string>
23
24
#include <itkMacro.h>
25
#include <
mitkException.h
>
26
#include <
mitkTestCaller.h
>
27
#include <
mitkTestManager.h
>
28
29
#include <cppunit/extensions/HelperMacros.h>
30
#include <cppunit/ui/text/TestRunner.h>
31
32
namespace
mitk
33
{
35
class
TestFailedException
:
public
std::exception
36
{
37
public
:
38
TestFailedException
() {}
39
};
40
}
41
47
#define MITK_TEST_OUTPUT_NO_ENDL(x) std::cout x;
48
54
#define MITK_TEST_OUTPUT(x) MITK_TEST_OUTPUT_NO_ENDL(x << "\n")
55
63
#define MITK_TEST_BEGIN(testName) \
64
std::string mitkTestName(#testName); \
65
mitk::TestManager::GetInstance()->Initialize(); \
66
try \
67
{
68
74
#define MITK_TEST_FAILED_MSG(MSG) \
75
MITK_TEST_OUTPUT(MSG) \
76
throw mitk::TestFailedException();
77
84
#define MITK_TEST_END() \
85
} \
86
catch (const mitk::TestFailedException &) \
87
{ \
88
MITK_TEST_OUTPUT(<< "Further test execution skipped.") \
89
mitk::TestManager::GetInstance()->TestFailed(); \
90
} \
91
catch (const std::exception &ex) \
92
{ \
93
MITK_TEST_OUTPUT(<< "std::exception occured " << ex.what()) \
94
mitk::TestManager::GetInstance()->TestFailed(); \
95
} \
96
if (mitk::TestManager::GetInstance()->NumberOfFailedTests() > 0) \
97
{ \
98
MITK_TEST_OUTPUT(<< mitkTestName << ": [DONE FAILED] , subtests passed: " \
99
<< mitk::TestManager::GetInstance()->NumberOfPassedTests() \
100
<< " failed: " \
101
<< mitk::TestManager::GetInstance()->NumberOfFailedTests()) \
102
return EXIT_FAILURE; \
103
} \
104
else \
105
{ \
106
MITK_TEST_OUTPUT(<< mitkTestName << ": " << mitk::TestManager::GetInstance()->NumberOfPassedTests() \
107
<< " tests [DONE PASSED]") \
108
return EXIT_SUCCESS; \
109
}
110
114
#define MITK_TEST_CONDITION(COND, MSG) \
115
MITK_TEST_OUTPUT_NO_ENDL(<< MSG) \
116
if (!(COND)) \
117
{ \
118
mitk::TestManager::GetInstance()->TestFailed(); \
119
MITK_TEST_OUTPUT(<< " [FAILED]\n" \
120
<< "In " \
121
<< __FILE__ \
122
<< ", line " \
123
<< __LINE__ \
124
<< ": " #COND " : [FAILED]") \
125
} \
126
else \
127
{ \
128
MITK_TEST_OUTPUT(<< " [PASSED]") \
129
mitk::TestManager::GetInstance()->TestPassed(); \
130
}
131
135
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG) \
136
MITK_TEST_OUTPUT_NO_ENDL(<< MSG) \
137
if (!(COND)) \
138
{ \
139
MITK_TEST_FAILED_MSG(<< " [FAILED]\n" \
140
<< " +--> in " \
141
<< __FILE__ \
142
<< ", line " \
143
<< __LINE__ \
144
<< ", expression is false: \"" #COND "\"") \
145
} \
146
else \
147
{ \
148
MITK_TEST_OUTPUT(<< " [PASSED]") \
149
mitk::TestManager::GetInstance()->TestPassed(); \
150
}
151
172
#define MITK_TEST_FOR_EXCEPTION_BEGIN(EXCEPTIONCLASS) \
173
try \
174
{
175
178
#define MITK_TEST_FOR_EXCEPTION_END(EXCEPTIONCLASS) \
179
mitk::TestManager::GetInstance()->TestFailed(); \
180
MITK_TEST_OUTPUT(<< "Expected an '" << #EXCEPTIONCLASS << "' exception. [FAILED]") \
181
} \
182
catch (EXCEPTIONCLASS) \
183
{ \
184
MITK_TEST_OUTPUT(<< "Caught an expected '" << #EXCEPTIONCLASS << "' exception. [PASSED]") \
185
mitk::TestManager::GetInstance()->TestPassed(); \
186
}
187
195
#define MITK_TEST_FOR_EXCEPTION(EXCEPTIONCLASS, STATEMENT) \
196
MITK_TEST_FOR_EXCEPTION_BEGIN(EXCEPTIONCLASS) \
197
STATEMENT; \
198
MITK_TEST_FOR_EXCEPTION_END(EXCEPTIONCLASS)
199
215
#define MITK_TEST_EQUAL(OBJ1, OBJ2, MSG) \
216
MITK_TEST_CONDITION_REQUIRED(mitk::Equal(OBJ1, OBJ2, mitk::eps, true) == true, MSG)
217
232
#define MITK_ASSERT_EQUAL(EXPECTED, ACTUAL, MSG) \
233
if (((EXPECTED).IsNull()) || ((ACTUAL).IsNull())) \
234
{ \
235
mitkThrow() << "mitk::Equal does not work with NULL pointer input."; \
236
} \
237
CPPUNIT_ASSERT_MESSAGE(MSG, mitk::Equal(*(EXPECTED), *(ACTUAL), mitk::eps, true))
238
255
#define MITK_TEST_NOT_EQUAL(OBJ1, OBJ2, MSG) \
256
CPPUNIT_ASSERT_MESSAGE(MSG, !mitk::Equal(*(OBJ1), *(OBJ2), mitk::eps, true))
257
273
#define MITK_ASSERT_NOT_EQUAL(OBJ1, OBJ2, MSG) \
274
if (((OBJ1).IsNull()) || ((OBJ2).IsNull())) \
275
{ \
276
mitkThrow() << "mitk::Equal does not work with NULL pointer input."; \
277
} \
278
CPPUNIT_ASSERT_MESSAGE(MSG, !mitk::Equal(*(OBJ1), *(OBJ2), mitk::eps, true))
279
288
#define MITK_TEST_SUITE_REGISTRATION(TESTSUITE_NAME) \
289
int TESTSUITE_NAME##Test(int
/*argc*/
, char *
/*argv*/
[]) \
290
{ \
291
CppUnit::TextUi::TestRunner runner; \
292
runner.addTest(TESTSUITE_NAME##TestSuite::suite()); \
293
return runner.run() ? 0 : 1; \
294
}
295
306
#define MITK_TEST(TESTMETHOD) CPPUNIT_TEST(TESTMETHOD)
307
322
#define MITK_PARAMETERIZED_TEST(TESTMETHOD, ARGS) \
323
\
324
{ \
325
std::string testName = #TESTMETHOD; \
326
for (std::size_t i = 0; i < ARGS.size(); ++i) \
327
{ \
328
testName += "_" + ARGS[i]; \
329
} \
330
CPPUNIT_TEST_SUITE_ADD_TEST((new mitk::TestCaller<TestFixtureType>( \
331
context.getTestNameFor(testName), &TestFixtureType::TESTMETHOD, context.makeFixture(), args))); \
332
}
333
350
#define MITK_PARAMETERIZED_CMD_LINE_TEST(TESTMETHOD) \
351
CPPUNIT_TEST_SUITE_ADD_TEST((new mitk::TestCaller<TestFixtureType>( \
352
context.getTestNameFor(#TESTMETHOD), &TestFixtureType::TESTMETHOD, context.makeFixture())));
353
370
#define MITK_PARAMETERIZED_TEST_1(TESTMETHOD, arg1) \
371
\
372
{ \
373
std::vector<std::string> args; \
374
args.push_back(arg1); \
375
MITK_PARAMETERIZED_TEST(TESTMETHOD, args) \
376
}
377
394
#define MITK_PARAMETERIZED_TEST_2(TESTMETHOD, arg1, arg2) \
395
\
396
{ \
397
std::vector<std::string> args; \
398
args.push_back(arg1); \
399
args.push_back(arg2); \
400
MITK_PARAMETERIZED_TEST(TESTMETHOD, args) \
401
}
402
#endif
mitkException.h
mitk
DataCollection - Class to facilitate loading/accessing structured data.
Definition:
GeometryOverview.dox:1
mitk::TestFailedException
Indicate a failed test.
Definition:
mitkTestingMacros.h:35
mitkTestManager.h
mitk::TestFailedException::TestFailedException
TestFailedException()
Definition:
mitkTestingMacros.h:38
mitkTestCaller.h
git
MITK
Modules
Core
TestingHelper
include
mitkTestingMacros.h
Generated on Fri Feb 3 2017 20:52:09 for Medical Imaging Interaction Toolkit by
1.8.9.1