From 6afd65650f7f5ce8edb251f328e2040015544d75 Mon Sep 17 00:00:00 2001 From: Hugo van der Merwe <17109322+hugovdm@users.noreply.github.com> Date: Wed, 29 Apr 2020 21:55:13 +0200 Subject: [PATCH] Add IntlTest::assertNotEquals() for int32_t. --- icu4c/source/test/intltest/intltest.cpp | 22 ++++++++++++++++++++++ icu4c/source/test/intltest/intltest.h | 2 ++ icu4c/source/test/intltest/unitstest.cpp | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/icu4c/source/test/intltest/intltest.cpp b/icu4c/source/test/intltest/intltest.cpp index 15cd2d30776..8a68fc584da 100644 --- a/icu4c/source/test/intltest/intltest.cpp +++ b/icu4c/source/test/intltest/intltest.cpp @@ -2155,6 +2155,23 @@ UBool IntlTest::assertEquals(const char* message, return TRUE; } +UBool IntlTest::assertNotEquals(const char* message, + int32_t expectedNot, + int32_t actual) { + if (expectedNot == actual) { + errln((UnicodeString)("FAIL: ") + message + "; got " + actual + "=0x" + toHex(actual) + + "; expected != " + expectedNot); + return FALSE; + } +#ifdef VERBOSE_ASSERTIONS + else { + logln((UnicodeString)("Ok: ") + message + "; got " + actual + "=0x" + toHex(actual) + + " != " + expectedNot); + } +#endif + return TRUE; +} + static char ASSERT_BUF[256]; static const char* extractToAssertBuf(const UnicodeString& message) { @@ -2224,6 +2241,11 @@ UBool IntlTest::assertEquals(const UnicodeString& message, const std::vector& actual) { return assertEquals(extractToAssertBuf(message), expected, actual); } +UBool IntlTest::assertNotEquals(const UnicodeString &message, + int32_t expectedNot, + int32_t actual) { + return assertNotEquals(extractToAssertBuf(message), expectedNot, actual); +} #if !UCONFIG_NO_FORMATTING UBool IntlTest::assertEquals(const UnicodeString& message, diff --git a/icu4c/source/test/intltest/intltest.h b/icu4c/source/test/intltest/intltest.h index 027ebaa45e3..b0e25247804 100644 --- a/icu4c/source/test/intltest/intltest.h +++ b/icu4c/source/test/intltest/intltest.h @@ -309,6 +309,7 @@ public: UBool assertEquals(const UnicodeString& message, const Formattable& expected, const Formattable& actual); #endif + UBool assertNotEquals(const char* message, int32_t expectedNot, int32_t actual); UBool assertTrue(const UnicodeString& message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE); UBool assertFalse(const UnicodeString& message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE); UBool assertSuccess(const UnicodeString& message, UErrorCode ec); @@ -323,6 +324,7 @@ public: UBool assertEquals(const UnicodeString& message, const UnicodeSet& expected, const UnicodeSet& actual); UBool assertEquals(const UnicodeString& message, const std::vector& expected, const std::vector& actual); + UBool assertNotEquals(const UnicodeString& message, int32_t expectedNot, int32_t actual); virtual void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); // overide ! diff --git a/icu4c/source/test/intltest/unitstest.cpp b/icu4c/source/test/intltest/unitstest.cpp index adedd0f581f..aea53050a08 100644 --- a/icu4c/source/test/intltest/unitstest.cpp +++ b/icu4c/source/test/intltest/unitstest.cpp @@ -280,7 +280,7 @@ void unitsTestDataLineFn(void *context, char *fields[][2], int32_t fieldCount, U .append(" -> ", status) .append(targetUnit.getIdentifier(), status); if (status.errIfFailureAndReset("msg construction")) { return; } - unitsTest->assertTrue(msg.data(), convertibility != UNCONVERTIBLE); + unitsTest->assertNotEquals(msg.data(), UNCONVERTIBLE, convertibility); // TODO(hugovdm,younies): the following code can be uncommented (and // fixed) once merged with a UnitConverter branch: -- 2.40.0