Skip to content

Commit

Permalink
ICU-22365 Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
FrankYFTang committed Jul 1, 2023
1 parent 36c417a commit 4c382b6
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions icu4c/source/test/cintltst/ulocbuildertst.c
Original file line number Diff line number Diff line change
Expand Up @@ -1199,6 +1199,7 @@ static void TestSetExtensionU() {
"setExtension('U', \"ca-japanese\") got Error: %s\n");
}
*/

static void TestSetExtensionValidateUWellFormed() {
static const char* wellFormedExtensions[] = {
Expand Down Expand Up @@ -1234,15 +1235,18 @@ static void TestSetExtensionValidateUWellFormed() {
"K2K-12345678-zz-9A-234",
"K2K-12345678-zk0-abc-efg-zz-9k-234",
};
for (const char* extension : wellFormedExtensions) {
for (int i = 0; i < UPRV_LENGTHOF(wellFormedExtensions); i++) {
const char* extension = wellFormedExtensions[i];
UErrorCode status = U_ZERO_ERROR;
LocaleBuilder bld;
bld.setExtension('u', extension);
Locale loc = bld.build(status);
ULocaleBuilder bld = ulb_open();
ulb_setExtension(bld, 'u', extension);
char buffer[ULOC_FULLNAME_CAPACITY];
ulb_build(bld, buffer, ULOC_FULLNAME_CAPACITY, &status);
if (U_FAILURE(status)) {
errln("setExtension('u', \"%s\") got Error: %s\n",
log_err("setExtension('u', \"%s\") got Error: %s\n",
extension, u_errorName(status));
}
ulb_close(bld);
}
}

Expand Down Expand Up @@ -1274,18 +1278,22 @@ static void TestSetExtensionValidateUIllFormed() {
"abcdefgh-a",
"abcdefgh-a2345678z",
};
for (const char* ill : illFormed) {
for (int i = 0; i < UPRV_LENGTHOF(illFormed); i++) {
const char* ill = illFormed[i];
UErrorCode status = U_ZERO_ERROR;
LocaleBuilder bld;
bld.setExtension('u', ill);
Locale loc = bld.build(status);
ULocaleBuilder bld = ulb_open();
ulb_setExtension(bld, 'u', ill);
char buffer[ULOC_FULLNAME_CAPACITY];
ulb_build(bld, buffer, ULOC_FULLNAME_CAPACITY, &status);
if (status != U_ILLEGAL_ARGUMENT_ERROR) {
errln("setExtension('u', \"%s\") should fail but has no Error\n",
log_err("setExtension('u', \"%s\") should fail but has no Error\n",
ill);
}
ulb_close(bld);
}
}

/* TestSetExtensionT
static void TestSetExtensionT() {
LocaleBuilder bld;
bld.setLanguage("fr");
Expand Down Expand Up @@ -1715,8 +1723,10 @@ void addLocaleBuilderTest(TestNode** root)
TESTCASE(TestAddUnicodeLocaleAttributeIllFormed);
/*
TESTCASE(TestSetExtensionU);
*/
TESTCASE(TestSetExtensionValidateUWellFormed);
TESTCASE(TestSetExtensionValidateUIllFormed);
/*
TESTCASE(TestSetExtensionT);
TESTCASE(TestSetExtensionValidateTWellFormed);
TESTCASE(TestSetExtensionValidateTIllFormed);
Expand Down

0 comments on commit 4c382b6

Please sign in to comment.