17 #if !defined(NX_KIT_API) 25 extern bool NX_KIT_API verbose;
41 #define TEST(TEST_CASE, TEST_NAME) ENABLED_TEST(TEST_CASE, TEST_NAME) 43 #define ENABLED_TEST(TEST_CASE, TEST_NAME) \ 44 static void test_##TEST_CASE##_##TEST_NAME(); \ 45 int unused_##TEST_CASE##_##TEST_NAME = \ 46 ::nx::kit::test::detail::regTest( \ 47 {#TEST_CASE, #TEST_NAME, #TEST_CASE "." #TEST_NAME, test_##TEST_CASE##_##TEST_NAME, \ 49 static void test_##TEST_CASE##_##TEST_NAME() 52 #define DISABLED_TEST(TEST_CASE, TEST_NAME) \ 53 static void disabled_test_##TEST_CASE##_##TEST_NAME() 56 #define ASSERT_TRUE(CONDITION) \ 57 ::nx::kit::test::detail::assertBool(true, !!(CONDITION), #CONDITION, __FILE__, __LINE__) 59 #define ASSERT_TRUE_AT_LINE(LINE, CONDITION) \ 60 ::nx::kit::test::detail::assertBool(true, !!(CONDITION), #CONDITION, __FILE__, LINE, __LINE__) 62 #define ASSERT_FALSE(CONDITION) \ 63 ::nx::kit::test::detail::assertBool(false, !!(CONDITION), #CONDITION, __FILE__, __LINE__) 65 #define ASSERT_FALSE_AT_LINE(LINE, CONDITION) \ 66 ::nx::kit::test::detail::assertBool(false, !!(CONDITION), #CONDITION, __FILE__, LINE, __LINE__) 68 #define ASSERT_EQ(EXPECTED, ACTUAL) \ 69 ::nx::kit::test::detail::assertEq( \ 70 (EXPECTED), #EXPECTED, (ACTUAL), #ACTUAL, __FILE__, __LINE__) 72 #define ASSERT_EQ_AT_LINE(LINE, EXPECTED, ACTUAL) \ 73 ::nx::kit::test::detail::assertEq( \ 74 (EXPECTED), #EXPECTED, (ACTUAL), #ACTUAL, __FILE__, LINE, __LINE__) 76 #define ASSERT_STREQ(EXPECTED, ACTUAL) \ 77 ::nx::kit::test::detail::assertStrEq( \ 78 EXPECTED, #EXPECTED, ACTUAL, #ACTUAL, __FILE__, __LINE__) 80 #define ASSERT_STREQ_AT_LINE(LINE, EXPECTED, ACTUAL) \ 81 ::nx::kit::test::detail::assertStrEq( \ 82 EXPECTED, #EXPECTED, ACTUAL, #ACTUAL, __FILE__, LINE, __LINE__) 98 NX_KIT_API
void assertMultilineTextEquals(
99 const char* file,
int line,
const std::string& testCaseTag,
100 const std::string& expected,
const std::string& actual,
101 const std::string actualSubstrToReplace =
"",
const std::string& actualSubstrReplacement =
"");
110 NX_KIT_API
const char* tempDir();
119 NX_KIT_API
const char* staticTempDir();
133 NX_KIT_API
int runAllTests(
const char *testSuiteName,
const char* specificArgsHelp =
nullptr);
136 NX_KIT_API
void createFile(
const std::string& filename,
const std::string& content);
143 #if defined(NX_KIT_TEST_KEEP_TEMP_FILES) 144 static const nx::kit::test::TempFile::KeepFilesInitializer tempFileKeepFilesInitializer;
147 typedef std::function<void()> TestFunc;
151 const char*
const testCase;
152 const char*
const testName;
153 const char*
const testCaseDotName;
154 const TestFunc testFunc;
158 NX_KIT_API
int regTest(
const Test&
test);
160 NX_KIT_API
void failEq(
161 const std::string& expectedValue,
const char* expectedExpr,
162 const std::string& actualValue,
const char* actualExpr,
163 const char* file,
int line,
int actualLine = -1);
165 NX_KIT_API
void assertBool(
166 bool expected,
bool condition,
const char* conditionStr,
167 const char* file,
int line,
int actualLine = -1);
169 template<
typename Expected,
typename Actual>
171 const Expected& expected,
const char* expectedExpr,
172 const Actual& actual,
const char* actualExpr,
173 const char* file,
int line,
int actualLine = -1)
175 if (!(expected == actual))
178 nx::kit::utils::toString(expected), expectedExpr,
179 nx::kit::utils::toString(actual), actualExpr,
180 file, line, actualLine);
197 UniversalString(
const char (&a)[len], std::true_type): s(a, len - 1), isNull(false) {}
203 UniversalString(
const char* p, std::false_type): s(p ? p :
""), isNull(!p) {}
209 std::forward<T>(arg),
std::is_array<typename
std::remove_reference<T>::type>())
213 bool operator==(
const UniversalString& u)
const {
return isNull == u.isNull && s == u.s; }
214 bool operator!=(
const UniversalString& u)
const {
return !(*
this == u); }
216 std::string toString()
const 220 return nx::kit::utils::toString(s);
224 inline std::ostream& operator<<(std::ostream& stream,
const UniversalString& str)
226 return stream << str.toString();
229 NX_KIT_API
void assertStrEq(
230 const UniversalString& expectedValue,
const char* expectedExpr,
231 const UniversalString& actualValue,
const char* actualExpr,
232 const char* file,
int line,
int actualLine = -1);
UniversalString(char(&a)[len], std::true_type)
Definition: test.h:201
Definition: json_ut.cpp:14
Definition: to_string.h:51
UniversalString(const char(&a)[len], std::true_type)
Definition: test.h:197
UniversalString(T &&arg)
Definition: test.h:208
Definition: apple_utils.h:6