]> granicus.if.org Git - icu/commitdiff
ICU-9655 make enumset test a real test, not just printfs
authorSteven R. Loomis <srl@icu-project.org>
Mon, 10 Dec 2012 19:18:04 +0000 (19:18 +0000)
committerSteven R. Loomis <srl@icu-project.org>
Mon, 10 Dec 2012 19:18:04 +0000 (19:18 +0000)
X-SVN-Rev: 32936

icu4c/source/test/intltest/intltest.cpp
icu4c/source/test/intltest/intltest.h
icu4c/source/test/intltest/itutil.cpp

index 158ac921f183729557ea809ea8f7b32b53cec2c4..5fbf2efd8747bab3e9e3caea34e57277c9d95e06 100644 (file)
@@ -1652,6 +1652,19 @@ UBool IntlTest::assertTrue(const char* message, UBool condition, UBool quiet, UB
     return condition;
 }
 
+UBool IntlTest::assertTrue(const char *file, int line, const char* message, UBool condition, UBool quiet, UBool possibleDataError) {
+    if (!condition) {
+        if (possibleDataError) {
+          dataerrln("%s:%d: FAIL: assertTrue() failed: %s", file, line, message);
+        } else {
+          errln("%s:%d: FAIL: assertTrue() failed: %s", file, line, message);
+        }
+    } else if (!quiet) {
+      logln("%s:%d: Ok: %s", file, line, message);
+    }
+    return condition;
+}
+
 UBool IntlTest::assertFalse(const char* message, UBool condition, UBool quiet) {
     if (condition) {
         errln("FAIL: assertFalse() failed: %s", message);
index 3851c712163a8147a774a1092cd066d51e9cafde..f33ea5020ca84525d377cbb65c32dde44320cd06 100644 (file)
@@ -120,6 +120,9 @@ UnicodeString toString(int32_t n);
         break; \
     }
 
+#define TEST_ASSERT_TRUE(x) \
+  assertTrue(__FILE__, __LINE__, #x, (x), FALSE, FALSE)
+
 class IntlTest : public TestLog {
 public:
 
@@ -232,6 +235,7 @@ public:
 protected:
     /* JUnit-like assertions. Each returns TRUE if it succeeds. */
     UBool assertTrue(const char* message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE);
+    UBool assertTrue(const char *file, int line, const char* message, UBool condition, UBool quiet=FALSE, UBool possibleDataError=FALSE);
     UBool assertFalse(const char* message, UBool condition, UBool quiet=FALSE);
     UBool assertSuccess(const char* message, UErrorCode ec, UBool possibleDataError=FALSE);
     UBool assertEquals(const char* message, const UnicodeString& expected,
index d9c0784a73891167060643fadf48ca768c26f490..2f726101ce86bc5067c6bc53e8e4ed934c7f6026 100644 (file)
@@ -508,27 +508,51 @@ void EnumSetTest::TestEnumSet() {
             MAX_NONBOOLEAN+1,
             LIMIT_BOOLEAN>
                             flags;
-    infoln("TODO!! This test doesn't fail on error. Convert printf into error assert.\n");
 
     logln("Enum is from [%d..%d]\n", MAX_NONBOOLEAN+1,
           LIMIT_BOOLEAN);
 
+    TEST_ASSERT_TRUE(flags.get(THING1) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == FALSE);
+
     logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
     logln("Value now: %d\n", flags.getAll());
     flags.clear();
     logln("clear -Value now: %d\n", flags.getAll());
     logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
+    TEST_ASSERT_TRUE(flags.get(THING1) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == FALSE);
     flags.add(THING1);
     logln("set THING1 -Value now: %d\n", flags.getAll());
+    TEST_ASSERT_TRUE(flags.get(THING1) == TRUE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == FALSE);
     logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
     flags.add(THING3);
     logln("set THING3 -Value now: %d\n", flags.getAll());
+    TEST_ASSERT_TRUE(flags.get(THING1) == TRUE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == TRUE);
     logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
     flags.remove(THING2);
+    TEST_ASSERT_TRUE(flags.get(THING1) == TRUE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == TRUE);
     logln("remove THING2 -Value now: %d\n", flags.getAll());
     logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
     flags.remove(THING1);
+    TEST_ASSERT_TRUE(flags.get(THING1) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == TRUE);
     logln("remove THING1 -Value now: %d\n", flags.getAll());
     logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
 
+    flags.clear();
+    logln("clear -Value now: %d\n", flags.getAll());
+    logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n",          flags.get(THING1),          flags.get(THING2),          flags.get(THING3));
+    TEST_ASSERT_TRUE(flags.get(THING1) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING2) == FALSE);
+    TEST_ASSERT_TRUE(flags.get(THING3) == FALSE);
 }