ICU-9655 make enumset test a real test, not just printfs

X-SVN-Rev: 32936
This commit is contained in:
Steven R. Loomis 2012-12-10 19:18:04 +00:00
parent 736010a456
commit 71946b5544
3 changed files with 42 additions and 1 deletions

View 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);

View 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,

View 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);
}