21 #ifdef BETEST_GENERATE_UNITTESTS_LIST_H
24 #if !defined (GTEST_INCLUDE_GTEST_GTEST_H_)
38 Test() : m_anyError(false) {;}
46 #define TEST_CLASS_NAME(testCaseName, testName) TEST_##testCaseName##_##testName
47 #define TEST_RUNNER_FUNC(testCaseName, testName) run_TEST_##testCaseName##_##testName
49 #define DEFINE_BETEST_INTERNAL(superTestName, testCaseName, testName)\
50 struct TEST_CLASS_NAME(testCaseName,testName) : superTestName \
52 CharCP GetTestCaseNameA () const { return #testCaseName; } \
53 CharCP GetTestNameA () const { return #testName; } \
54 virtual void TestBody () override; \
56 extern "C" EXPORT_ATTRIBUTE int TEST_RUNNER_FUNC(testCaseName,testName) () {size_t e = BeTest::GetErrorCount(); TEST_CLASS_NAME(testCaseName,testName) t; t.Run(); return BeTest::GetErrorCount() > e;} \
57 void TEST_CLASS_NAME(testCaseName,testName) :: TestBody ()
60 #if !defined(BETEST_GENERATE_UNITTESTS_LIST_H)
62 #define TEST_F(testCaseName, testName) DEFINE_BETEST_INTERNAL(testCaseName,testCaseName,testName)
65 #define TEST(testCaseName, testName) DEFINE_BETEST_INTERNAL(testing::Test,testCaseName,testName)
68 #if !defined(RUN_ALL_TESTS)
69 #define RUN_ALL_TESTS BeTest::RunAllTests
149 #if !defined (GTEST_INCLUDE_GTEST_GTEST_H_)
151 #if defined (EXPERIMENT_COMMENT_OFF)
152 #define BE_TEST_EXPECTED_RESULT_EQ(expected,actual,fatal) BeTest::CheckResultEQ (BeTest::PrimitiveValueUnion(actual), BeTest::PrimitiveValueUnion(expected), true, #expected, #actual, __FILE__ , __LINE__,fatal)
153 #define BE_TEST_EXPECTED_RESULT_NE(expected,actual,fatal) BeTest::CheckResultEQ (BeTest::PrimitiveValueUnion(actual), BeTest::PrimitiveValueUnion(expected), false, #expected, #actual, __FILE__ , __LINE__,fatal)
154 #define BE_TEST_EXPECTED_RESULT_STREQ(expected,actual,fatal) BeTest::CheckResultEQ (BeTest::PrimitiveValueUnion(actual), BeTest::PrimitiveValueUnion(expected), true, #expected, #actual, __FILE__ , __LINE__,fatal)
155 #define BE_TEST_EXPECTED_RESULT_STRNE(expected,actual,fatal) BeTest::CheckResultEQ (BeTest::PrimitiveValueUnion(actual), BeTest::PrimitiveValueUnion(expected), false, #expected, #actual, __FILE__ , __LINE__,fatal)
156 #define BE_TEST_EXPECTED_RESULT_ASTREQ(expected,actual,fatal) BeTest::CheckResultEQ (BeTest::PrimitiveValueUnion(actual), BeTest::PrimitiveValueUnion(expected), true, #expected, #actual, __FILE__ , __LINE__,fatal)
158 #define BE_TEST_EXPECTED_RESULT_EQ(expected,actual,fatal) BeTest::ExpectedResult ((expected) == (actual), #expected, #actual, __FILE__ , __LINE__,fatal)
159 #define BE_TEST_EXPECTED_RESULT_NE(val1,val2,fatal) BeTest::ExpectedResult ((val1) != (val2), #val1, #val2, __FILE__ , __LINE__,fatal)
160 #define BE_TEST_EXPECTED_RESULT_STREQ(val1,val2,fatal) BeTest::ExpectedResult (0==wcscmp(val1, val2), #val1, #val2, __FILE__ , __LINE__,fatal)
161 #define BE_TEST_EXPECTED_RESULT_STRNE(val1,val2,fatal) BeTest::ExpectedResult (0!=wcscmp(val1, val2), #val1, #val2, __FILE__ , __LINE__,fatal)
162 #define BE_TEST_EXPECTED_RESULT_ASTREQ(val1,val2,fatal) BeTest::ExpectedResult (0==strcmp(val1, val2), #val1, #val2, __FILE__ , __LINE__,fatal)
163 #endif //defined (EXPERIMENT_COMMENT_OFF)
164 #define BE_TEST_EXPECTED_RESULT_TRUE(expression,fatal) BeTest::ExpectedResult ((expression) != 0, "TRUE", #expression, __FILE__ , __LINE__,fatal)
165 #define BE_TEST_EXPECTED_RESULT_FALSE(expression,fatal) BeTest::ExpectedResult ((expression) == 0, "FALSE", #expression, __FILE__ , __LINE__,fatal)
166 #define BE_TEST_EXPECTED_RESULT_LE(val1,val2,fatal) BeTest::ExpectedResult ((val1) <= (val2), #val1, #val2, __FILE__ , __LINE__,fatal)
167 #define BE_TEST_EXPECTED_RESULT_LT(val1,val2,fatal) BeTest::ExpectedResult ((val1) < (val2), #val1, #val2, __FILE__ , __LINE__,fatal)
168 #define BE_TEST_EXPECTED_RESULT_GE(val1,val2,fatal) BeTest::ExpectedResult ((val1) >= (val2), #val1, #val2, __FILE__ , __LINE__,fatal)
169 #define BE_TEST_EXPECTED_RESULT_GT(val1,val2,fatal) BeTest::ExpectedResult ((val1) > (val2), #val1, #val2, __FILE__ , __LINE__,fatal)
170 #define BE_TEST_EXPECTED_RESULT_NEAR(val1, val2, tol,fatal) BeTest::ExpectedResult (BeTest::EqTol(val1,val2,tol), #val1, #val2, __FILE__ , __LINE__,fatal)
171 #define BE_TEST_EXPECTED_RESULT_FAIL() BeTest::ExpectedResult (false, "SUCCESS", "FAIL", __FILE__ , __LINE__,true)
176 #if !defined (ASSERT_EQ)
177 #define ASSERT_EQ(expected,actual) BE_TEST_EXPECTED_RESULT_EQ(expected,actual,true)
179 #if !defined (EXPECT_EQ)
180 #define EXPECT_EQ(expected,actual) BE_TEST_EXPECTED_RESULT_EQ(expected,actual,false)
182 #if !defined (ASSERT_TRUE)
183 #define ASSERT_TRUE(expression) BE_TEST_EXPECTED_RESULT_TRUE(expression,true)
185 #if !defined (EXPECT_TRUE)
186 #define EXPECT_TRUE(expression) BE_TEST_EXPECTED_RESULT_TRUE(expression,false)
188 #if !defined (ASSERT_FALSE)
189 #define ASSERT_FALSE(expression) BE_TEST_EXPECTED_RESULT_FALSE(expression,true)
191 #if !defined (EXPECT_FALSE)
192 #define EXPECT_FALSE(expression) BE_TEST_EXPECTED_RESULT_FALSE(expression,false)
194 #if !defined (ASSERT_NE)
195 #define ASSERT_NE(val1,val2) BE_TEST_EXPECTED_RESULT_NE(val1,val2,true)
197 #if !defined (EXPECT_NE)
198 #define EXPECT_NE(val1,val2) BE_TEST_EXPECTED_RESULT_NE(val1,val2,false)
200 #if !defined (ASSERT_LE)
201 #define ASSERT_LE(val1,val2) BE_TEST_EXPECTED_RESULT_LE(val1,val2,true)
203 #if !defined (EXPECT_LE)
204 #define EXPECT_LE(val1,val2) BE_TEST_EXPECTED_RESULT_LE(val1,val2,false)
206 #if !defined (ASSERT_LT)
207 #define ASSERT_LT(val1,val2) BE_TEST_EXPECTED_RESULT_LT(val1,val2,true)
209 #if !defined (EXPECT_LT)
210 #define EXPECT_LT(val1,val2) BE_TEST_EXPECTED_RESULT_LT(val1,val2,false)
212 #if !defined (ASSERT_GE)
213 #define ASSERT_GE(val1,val2) BE_TEST_EXPECTED_RESULT_GE(val1,val2,true)
215 #if !defined (EXPECT_GE)
216 #define EXPECT_GE(val1,val2) BE_TEST_EXPECTED_RESULT_GE(val1,val2,false)
218 #if !defined (ASSERT_GT)
219 #define ASSERT_GT(val1,val2) BE_TEST_EXPECTED_RESULT_GT(val1,val2,true)
221 #if !defined (EXPECT_GT)
222 #define EXPECT_GT(val1,val2) BE_TEST_EXPECTED_RESULT_GT(val1,val2,false)
224 #if !defined (ASSERT_STREQ)
225 #define ASSERT_STREQ(val1,val2) BE_TEST_EXPECTED_RESULT_STREQ(val1,val2,true)
227 #if !defined (EXPECT_STREQ)
228 #define EXPECT_STREQ(val1,val2) BE_TEST_EXPECTED_RESULT_STREQ(val1,val2,false)
230 #if !defined (ASSERT_ASTREQ)
231 #define ASSERT_ASTREQ(val1,val2) BE_TEST_EXPECTED_RESULT_ASTREQ(val1,val2,true)
233 #if !defined (EXPECT_ASTREQ)
234 #define EXPECT_ASTREQ(val1,val2) BE_TEST_EXPECTED_RESULT_ASTREQ(val1,val2,false)
236 #if !defined (ASSERT_STRNE)
237 #define ASSERT_STRNE(val1,val2) BE_TEST_EXPECTED_RESULT_STRNE(val1,val2,true)
239 #if !defined (EXPECT_STRNE)
240 #define EXPECT_STRNE(val1,val2) BE_TEST_EXPECTED_RESULT_STRNE(val1,val2,false)
242 #if !defined (ASSERT_NEAR)
243 #define ASSERT_NEAR(val1, val2, tol) BE_TEST_EXPECTED_RESULT_NEAR(val1, val2, tol,true)
245 #if !defined (EXPECT_NEAR)
246 #define EXPECT_NEAR(val1, val2, tol) BE_TEST_EXPECTED_RESULT_NEAR(val1, val2, tol,false)
249 #define FAIL() BE_TEST_EXPECTED_RESULT_FAIL()
251 #if !defined (SUCCEED)
254 #if !defined (EXPECT_DOUBLE_EQ)
255 #define EXPECT_DOUBLE_EQ(expected,actual) EXPECT_EQ(expected,actual)
261 #if defined (EXPERIMENT_COMMENT_OFF)
262 struct PrimitiveValueUnion
265 enum Type {INTEGRAL=0, TYPE_BOOL, UINTEGRAL, VOIDSTAR, CHARCP, WCHARCP, DOUBLE};
275 PrimitiveValueUnion PromoteTo (Type)
const;
285 #if !defined (__APPLE__)
298 #endif //defined (EXPERIMENT_COMMENT_OFF)
308 #if defined(_MSC_VER) && (_MSC_VER >= 1900)
338 #if defined (EXPERIMENT_COMMENT_OFF)
345 static bset<AString> s_failedTests;
346 static size_t s_errorCount;
347 static bool s_breakOnFailure;
Contains a UTF-8 encoded string.
Definition: WString.h:275
Provides Bentley specific functions to iterate over a file path (Bentley/BeFileListIterator.h).
virtual void GetOutputRoot(BeFileName &path)
Where a unit test can write temporary data files.
Definition: BeTest.h:117
#define BENTLEYDLL_EXPORT
Definition: Bentley.h:249
virtual void GetHomeRoot(BeFileName &path)
The "home" directory.
Definition: BeTest.h:111
virtual void SetUp()
Definition: BeTest.h:34
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:30
Provides Bentley specific set implementation (Bentley/bset.h).
Test()
Definition: BeTest.h:38
Definition: TextTableHandler.h:216
virtual CharCP GetTestCaseNameA() const =0
bool m_abortImmediately
Definition: BeTest.h:303
virtual void TestBody()
Definition: BeTest.h:36
long Long32
Definition: Bentley.r.h:145
uint16_t UInt16
Definition: Bentley.r.h:118
virtual void GetDocumentsRoot(BeFileName &path)
Where a unit test can find DGN and other data files.
Definition: BeTest.h:113
virtual ~Test()
Definition: BeTest.h:39
unsigned long ULong32
Definition: Bentley.r.h:146
Provides Bentley specific assert functions (Bentley/BeAssert.h).
uint8_t UInt8
Definition: Bentley.r.h:116
wchar_t const * WCharCP
Definition: Bentley.h:224
int16_t Int16
Definition: Bentley.r.h:117
virtual CharCP GetTestNameA() const =0
uint32_t UInt32
Definition: Bentley.r.h:128
#define BEGIN_BENTLEY_NAMESPACE
Definition: Bentley.r.h:24
Provides Bentley specific string utility functions (Bentley/BeStringUtilities.h). ...
Portable unit test utility functions, not specific to any one test harness.
Definition: BeTest.h:79
int8_t Int8
Definition: Bentley.r.h:115
AssertType
Definition: BeAssert.h:19
int32_t Int32
Definition: Bentley.r.h:119
Captures the result of testing a condition.
Definition: BeTest.h:301
AString m_message
Definition: BeTest.h:304
Interface to be implemented by an object that can tell unit tests where to find files.
Definition: BeTest.h:108
virtual void GetAppSupportRoot(BeFileName &path)
Where a unit test can find input supporting files such as fonts.rsc.
Definition: BeTest.h:115
Defines typedefs and constants that can be used across other namespaces. All Bentley-authored C++ sou...
unsigned char byte
Definition: Bentley.r.h:144
uint64_t UInt64
Definition: Bentley.r.h:131
std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const basic_string< _CharT, _Traits, _Allocator > &__str)
Definition: basic_string.h:1488
char const * CharCP
Definition: Bentley.h:226
#define END_BENTLEY_NAMESPACE
Definition: Bentley.r.h:25
int64_t Int64
Definition: Bentley.r.h:130
#define BeAssert(_Expression)
BeAssert performs the same function as the standard assert, plus it prevents the most common cases of...
Definition: BeAssert.h:56
void T_BeAssertListener(WCharCP _Message, WCharCP _File, unsigned _Line, BeAssertFunctions::AssertType atype)
Signature of an assertion failure listener. There can be many listeners. A listener does not control ...
Definition: BeTest.h:97
virtual void TearDown()
Definition: BeTest.h:35
Provides Bentley implemented file management functions (Bentley/BeFile.h).
Bstdcxx::basic_string< char, std::char_traits< char >, BentleyAllocator< char > > bastring
Definition: WString.h:22
bool operator==(const BentleyAllocator< _Ty > &, const BentleyAllocator< _Other > &)
Definition: BentleyAllocator.h:146