mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-10 07:39:16 +00:00
ICU-20808 Add test for the C locale to default to en_US_POSIX
This commit is contained in:
parent
f2f6855410
commit
a7a8cc3809
3 changed files with 27 additions and 0 deletions
|
@ -37,6 +37,12 @@ jobs:
|
|||
env:
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
- script: |
|
||||
cd icu4c/source/test/cintltst && LANG=C LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestCDefaultLocale
|
||||
displayName: 'Test C Default locale'
|
||||
- script: |
|
||||
cd icu4c/source/test/cintltst && LANG=C.UTF-8 LD_LIBRARY_PATH=../../lib:../../tools/ctestfw ./cintltst /tsutil/cloctst/TestCDefaultLocale
|
||||
displayName: 'Test C.UTF-8 Default locale'
|
||||
#-------------------------------------------------------------------------
|
||||
- job: ICU4C_Clang_Ubuntu_1604_WarningsAsErrors
|
||||
displayName: 'C: Linux Clang WarningsAsErrors (Ubuntu 16.04)'
|
||||
|
|
|
@ -261,6 +261,7 @@ void addLocaleTest(TestNode** root)
|
|||
TESTCASE(TestToLanguageTag);
|
||||
TESTCASE(TestBug20132);
|
||||
TESTCASE(TestBug20149);
|
||||
TESTCASE(TestCDefaultLocale);
|
||||
TESTCASE(TestForLanguageTag);
|
||||
TESTCASE(TestLangAndRegionCanonicalize);
|
||||
TESTCASE(TestTrailingNull);
|
||||
|
@ -409,6 +410,10 @@ static void TestNullDefault() {
|
|||
}
|
||||
|
||||
}
|
||||
uloc_setDefault(original, &status);
|
||||
if (U_FAILURE(status)) {
|
||||
log_err("Failed to change the default locale back to %s\n", original);
|
||||
}
|
||||
|
||||
}
|
||||
/* Test the i- and x- and @ and . functionality
|
||||
|
@ -6812,5 +6817,19 @@ static void TestUsingDefaultWarning() {
|
|||
u_UCharsToChars(buff, errorOutputBuff, length+1);
|
||||
log_err("ERROR: in uloc_getDisplayKeywordValue %s %s return len:%d %s with status %d %s\n",
|
||||
keyword_value, keyword, length, errorOutputBuff, status, myErrorName(status));
|
||||
}
|
||||
}
|
||||
// Test case for ICU-20575
|
||||
// This test checks if the environment variable LANG is set,
|
||||
// and if so ensures that both C and C.UTF-8 cause ICU's default locale to be en_US_POSIX.
|
||||
static void TestCDefaultLocale(){
|
||||
const char *defaultLocale = uloc_getDefault();
|
||||
char *env_var = getenv("LANG");
|
||||
if (env_var == NULL) {
|
||||
log_verbose("Skipping TestCDefaultLocale test, as the LANG variable is not set.");
|
||||
return;
|
||||
}
|
||||
if ((strcmp(env_var, "C") == 0 || strcmp(env_var, "C.UTF-8") == 0) && strcmp(defaultLocale, "en_US_POSIX") != 0) {
|
||||
log_err("The default locale for LANG=%s should be en_US_POSIX, not %s\n", env_var, defaultLocale);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,6 +136,8 @@ static void TestToLegacyKey(void);
|
|||
static void TestToUnicodeLocaleType(void);
|
||||
static void TestToLegacyType(void);
|
||||
static void TestBug20149(void);
|
||||
static void TestCDefaultLocale(void);
|
||||
|
||||
|
||||
/**
|
||||
* U_USING_DEFAULT_WARNING
|
||||
|
|
Loading…
Add table
Reference in a new issue