diff --git a/tests/auto/corelib/text/qlocale/CMakeLists.txt b/tests/auto/corelib/text/qlocale/CMakeLists.txt index a91dd44ea58..00eb8afd15d 100644 --- a/tests/auto/corelib/text/qlocale/CMakeLists.txt +++ b/tests/auto/corelib/text/qlocale/CMakeLists.txt @@ -8,6 +8,6 @@ if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) endif() add_subdirectory(test) -if(QT_FEATURE_jalalicalendar) +if(QT_FEATURE_process) add_subdirectory(syslocaleapp) endif() diff --git a/tests/auto/corelib/text/qlocale/syslocaleapp/syslocaleapp.cpp b/tests/auto/corelib/text/qlocale/syslocaleapp/syslocaleapp.cpp index 44c6ce3aa67..a52656c7249 100644 --- a/tests/auto/corelib/text/qlocale/syslocaleapp/syslocaleapp.cpp +++ b/tests/auto/corelib/text/qlocale/syslocaleapp/syslocaleapp.cpp @@ -11,11 +11,15 @@ int main(int argc, char** argv) // Setting a default locale should not mess up the system one. QLocale::setDefault(QLocale::Persian); QLocale l = QLocale::system(); + QTextStream str(stdout); +#if QT_CONFIG(jalalicalendar) // A non-Roman calendar will use CLDR data instead of system data, so needs // to have got the right locale index to look that up. QCalendar cal = QCalendar(QCalendar::System::Jalali); - QTextStream str(stdout); str << l.name() << ' ' << cal.standaloneMonthName(l, 2); +#else + str << l.name(); +#endif return 0; } diff --git a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp index ca93ee9fc44..254d4312418 100644 --- a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp +++ b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp @@ -664,7 +664,13 @@ void tst_QLocale::systemLocale_data() QTest::addColumn("expected"); -#define ADD_CTOR_TEST(give, expect) QTest::newRow(give) << QStringLiteral(expect); +#if QT_CONFIG(jalalicalendar) +#define ADD_CTOR_TEST(input, localePart, monthName) \ + QTest::newRow(input) << QStringLiteral(localePart) + " "_L1 + QStringLiteral(monthName); +#else +#define ADD_CTOR_TEST(input, localePart, monthName) \ + QTest::newRow(input) << QStringLiteral(localePart); +#endif // For format and meaning, see: // http://pubs.opengroup.org/onlinepubs/7908799/xbd/envvar.html @@ -676,44 +682,44 @@ void tst_QLocale::systemLocale_data() // setDefault(Persian) has interfered with the system locale setup. // Vanilla: - ADD_CTOR_TEST("C", "C Ordibehesht"); + ADD_CTOR_TEST("C", "C", "Ordibehesht"); // Standard forms: - ADD_CTOR_TEST("en", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_GB", "en_GB Ordibehesht"); - ADD_CTOR_TEST("de", "de_DE Ordibehescht"); + ADD_CTOR_TEST("en", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_GB", "en_GB", "Ordibehesht"); + ADD_CTOR_TEST("de", "de_DE", "Ordibehescht"); // Norsk has some quirks: - ADD_CTOR_TEST("no", "nb_NO ordibehesht"); - ADD_CTOR_TEST("nb", "nb_NO ordibehesht"); - ADD_CTOR_TEST("nn", "nn_NO ordibehesht"); - ADD_CTOR_TEST("no_NO", "nb_NO ordibehesht"); - ADD_CTOR_TEST("nb_NO", "nb_NO ordibehesht"); - ADD_CTOR_TEST("nn_NO", "nn_NO ordibehesht"); + ADD_CTOR_TEST("no", "nb_NO", "ordibehesht"); + ADD_CTOR_TEST("nb", "nb_NO", "ordibehesht"); + ADD_CTOR_TEST("nn", "nn_NO", "ordibehesht"); + ADD_CTOR_TEST("no_NO", "nb_NO", "ordibehesht"); + ADD_CTOR_TEST("nb_NO", "nb_NO", "ordibehesht"); + ADD_CTOR_TEST("nn_NO", "nn_NO", "ordibehesht"); // Not too fussy about case: - ADD_CTOR_TEST("DE", "de_DE Ordibehescht"); - ADD_CTOR_TEST("EN", "en_US Ordibehesht"); + ADD_CTOR_TEST("DE", "de_DE", "Ordibehescht"); + ADD_CTOR_TEST("EN", "en_US", "Ordibehesht"); // Invalid fields - ADD_CTOR_TEST("bla", "C Ordibehesht"); - ADD_CTOR_TEST("zz", "C Ordibehesht"); - ADD_CTOR_TEST("zz_zz", "C Ordibehesht"); - ADD_CTOR_TEST("zz...", "C Ordibehesht"); - ADD_CTOR_TEST("en.bla", "en_US Ordibehesht"); - ADD_CTOR_TEST("en@bla", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_blaaa", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_zz", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_GB.bla", "en_GB Ordibehesht"); - ADD_CTOR_TEST("en_GB@.bla", "en_GB Ordibehesht"); - ADD_CTOR_TEST("en_GB@bla", "en_GB Ordibehesht"); + ADD_CTOR_TEST("bla", "C", "Ordibehesht"); + ADD_CTOR_TEST("zz", "C", "Ordibehesht"); + ADD_CTOR_TEST("zz_zz", "C", "Ordibehesht"); + ADD_CTOR_TEST("zz...", "C", "Ordibehesht"); + ADD_CTOR_TEST("en.bla", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en@bla", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_blaaa", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_zz", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_GB.bla", "en_GB", "Ordibehesht"); + ADD_CTOR_TEST("en_GB@.bla", "en_GB", "Ordibehesht"); + ADD_CTOR_TEST("en_GB@bla", "en_GB", "Ordibehesht"); // Empty optional fields, but with punctuators supplied - ADD_CTOR_TEST("en.", "en_US Ordibehesht"); - ADD_CTOR_TEST("en@", "en_US Ordibehesht"); - ADD_CTOR_TEST("en.@", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_.", "en_US Ordibehesht"); - ADD_CTOR_TEST("en_.@", "en_US Ordibehesht"); + ADD_CTOR_TEST("en.", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en@", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en.@", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_.", "en_US", "Ordibehesht"); + ADD_CTOR_TEST("en_.@", "en_US", "Ordibehesht"); #undef ADD_CTOR_TEST #if QT_CONFIG(process) // for runSysApp @@ -722,7 +728,11 @@ void tst_QLocale::systemLocale_data() QString errorMessage; if (runSysApp(m_sysapp, QStringList(), cleanEnv, &defaultLoc, &errorMessage)) { #if defined(Q_OS_MACOS) +#if QT_CONFIG(jalalicalendar) QString localeForInvalidLocale = "C Ordibehesht"; +#else + QString localeForInvalidLocale = "C"; +#endif // QT_CONFIG(jalalicalendar) #else QString localeForInvalidLocale = defaultLoc; #endif