14 #if !defined(NX_KIT_API) 22 extern bool NX_KIT_API verbose;
24 #define TEST(TEST_CASE, TEST_NAME) \ 25 static void test_##TEST_CASE##_##TEST_NAME(); \ 26 int unused_##TEST_CASE##_##TEST_NAME = \ 27 ::nx::kit::test::detail::regTest( \ 28 {#TEST_CASE, #TEST_NAME, #TEST_CASE "." #TEST_NAME, test_##TEST_CASE##_##TEST_NAME, \ 30 static void test_##TEST_CASE##_##TEST_NAME() 33 #define ASSERT_TRUE(CONDITION) \ 34 ::nx::kit::test::detail::assertBool(true, (CONDITION), #CONDITION, __FILE__, __LINE__) 36 #define ASSERT_TRUE_AT_LINE(LINE, CONDITION) \ 37 ::nx::kit::test::detail::assertBool(true, (CONDITION), #CONDITION, __FILE__, (LINE)) 39 #define ASSERT_FALSE(CONDITION) \ 40 ::nx::kit::test::detail::assertBool(false, (CONDITION), #CONDITION, __FILE__, __LINE__) 42 #define ASSERT_FALSE_AT_LINE(LINE, CONDITION) \ 43 ::nx::kit::test::detail::assertBool(false, (CONDITION), #CONDITION, __FILE__, (LINE)) 45 #define ASSERT_EQ(EXPECTED, ACTUAL) \ 46 ::nx::kit::test::detail::assertEq( \ 47 (EXPECTED), #EXPECTED, (ACTUAL), #ACTUAL, __FILE__, __LINE__) 49 #define ASSERT_EQ_AT_LINE(LINE, EXPECTED, ACTUAL) \ 50 ::nx::kit::test::detail::assertEq( \ 51 (EXPECTED), #EXPECTED, (ACTUAL), #ACTUAL, __FILE__, (LINE)) 53 #define ASSERT_STREQ(EXPECTED, ACTUAL) \ 54 ::nx::kit::test::detail::assertStrEq( \ 55 ::nx::kit::test::detail::toCStr(EXPECTED), #EXPECTED, \ 56 ::nx::kit::test::detail::toCStr(ACTUAL), #ACTUAL, __FILE__, __LINE__) 58 #define ASSERT_STREQ_AT_LINE(LINE, EXPECTED, ACTUAL) \ 59 ::nx::kit::test::detail::assertStrEq( \ 60 ::nx::kit::test::detail::toCStr(EXPECTED), #EXPECTED, \ 61 ::nx::kit::test::detail::toCStr(ACTUAL), #ACTUAL, __FILE__, (LINE)) 70 NX_KIT_API
const char* tempDir();
79 NX_KIT_API
const char* staticTempDir();
93 NX_KIT_API
int runAllTests(
const char* testSuiteName,
int argc,
const char*
const argv[]);
95 NX_KIT_API
void createFile(
const char* filename,
const char* content);
100 #if defined(NX_KIT_TEST_KEEP_TEMP_FILES) 103 static const nx::kit::test::TempFile::KeepFilesInitializer tempFileKeepFilesInitializer;
109 NX_KIT_API
void failEq(
110 const char* expectedValue,
const char* expectedExpr,
111 const char* actualValue,
const char* actualExpr,
112 const char* file,
int line);
114 typedef std::function<void()> TestFunc;
118 const char*
const testCase;
119 const char*
const testName;
120 const char*
const testCaseDotName;
121 const TestFunc testFunc;
125 NX_KIT_API
int regTest(
const Test& test);
127 NX_KIT_API
void assertBool(
128 bool expected,
bool condition,
const char* conditionStr,
const char* file,
int line);
130 template<
typename Expected,
typename Actual>
132 const Expected& expected,
const char* expectedExpr,
133 const Actual& actual,
const char* actualExpr,
134 const char* file,
int line)
136 if (!(expected == actual))
139 utils::toString(expected).c_str(), expectedExpr,
140 utils::toString(actual).c_str(), actualExpr,
145 NX_KIT_API
void assertStrEq(
146 const char* expectedValue,
const char* expectedExpr,
147 const char* actualValue,
const char* actualExpr,
148 const char* file,
int line);
150 inline const char* toCStr(
const std::string& s)
155 inline const char* toCStr(
const char* s)