qt6-bb10/tests/auto/corelib/kernel
Volker Hilsheimer 8352306cdc QTranslator: fix loading order when loading from locale
A locale's UI language includes the script, e.g. the QLocale::uiLanguage
list for the Australian locale en_AU is {"en_Latn_AU", "en_AU", "en"}.
The old code iterated over each language in the outer loop, and for each
language tried several times, removing a segment from the back with each
try in the inner loop. The de-facto search order was then

en_Latn_AU
en_latn_au
en_Latn
en_latn
en
en_AU
en_au
en

Usually, translation files are provided for country_Territory, i.e.
en_AU. But if an en file (for a generic English translation) was also
present, then en_AU was never tried.

Fix this by breaking the logic into two loops: first, create a list of
candidates by removing segments from each UI Language. Then sort that
list of candidates so that entries with more segments come first. The
search order is now:

en_Latn_AU
en_latn_au
en_Latn
en_latn
en_AU
en_au
en

This way, en_AU gets loaded correctly, before en is tried.

Adjust the test, which was essentially duplicating the logic from
QTranslator to generate files. This only tested that two identical loops
result in the same thing. Instead of using the system locale, make the
test data-driven, and explicitly try en_US and en_AU, with candidate
files generated based on a hardcoded list for each data row.

Pick-to: 6.7 6.5
Fixes: QTBUG-124898
Change-Id: I6bdcff289d2843e61c9053c116e955b79e09e95a
Reviewed-by: Mate Barany <mate.barany@qt.io>
(cherry picked from commit 9a11273b745a30cebb5cd648c89eb224e9704492)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2024-06-20 19:30:33 +00:00
..
qapplicationstatic Change license for tests files 2024-02-04 09:56:42 +01:00
qchronotimer Correct license for files 2024-03-05 14:39:33 +01:00
qcoreapplication Exclude VxWorks from test for leaking objects 2024-06-18 01:34:51 +00:00
qdeadlinetimer QDeadlineTimer: use new comparison helper macros 2024-04-18 20:55:50 +02:00
qelapsedtimer QElapsedTimer: use new comparison helper macros 2024-05-14 00:32:34 +02:00
qeventdispatcher tst_QEventDispatcher: port to QTEST_THROW_ON_FAIL 2024-06-18 08:09:13 +00:00
qeventloop Change license for tests files 2024-02-04 09:56:42 +01:00
qjniarray JNI: make it safe to iterate over or convert an invalid QJniArray 2024-06-18 21:12:12 +00:00
qjnienvironment Change license for tests files 2024-02-04 09:56:42 +01:00
qjniobject JNI: add test coverage to confirm assumptions about array validity 2024-06-20 19:30:08 +00:00
qjnitypes JNI: pre-declare JNI classes for standard Java types 2024-06-20 19:30:06 +00:00
qmath Change license for tests files 2024-02-04 09:56:42 +01:00
qmetacontainer QMetaSequence and QMetaAssociation: use new comparison helper macros 2024-04-29 22:28:51 +02:00
qmetaenum Change license for tests files 2024-02-04 09:56:42 +01:00
qmetamethod QMetaMethod: use new comparison helper macros 2024-04-30 00:11:33 +02:00
qmetaobject Fix test compilation issues with QtLite configuration 2024-05-06 14:29:02 +00:00
qmetaobjectbuilder Change license for tests files 2024-02-04 09:56:42 +01:00
qmetaproperty Replace 'Qt Designer' and 'Qt Widgets Designer' in code 2024-05-16 13:04:41 +01:00
qmetatype QMetaType: use modern comparisons 2024-05-10 21:54:54 +02:00
qmimedata QMimeData: fix setData on URI list without ending CRLF 2024-04-22 13:57:38 -07:00
qobject QObject: fix installEventFilterOrder() test flakiness 2024-02-04 18:33:37 +01:00
qpermission Change license for tests files 2024-02-04 09:56:42 +01:00
qpointer QPointer: Use new comparison helper macros 2024-05-30 20:51:46 +02:00
qproperty QProperty: Destroy binding when refcount is 0 2024-03-18 17:42:19 +01:00
qsignalblocker Change license for tests files 2024-02-04 09:56:42 +01:00
qsignalmapper Change license for tests files 2024-02-04 09:56:42 +01:00
qsocketnotifier Change license for tests files 2024-02-04 09:56:42 +01:00
qtimer Timers: add Qt::TimerId enum class 2024-03-03 19:56:55 +02:00
qtranslator QTranslator: fix loading order when loading from locale 2024-06-20 19:30:33 +00:00
qvariant qtypeinfo.h: move QTypeTraits part to qttypetraits.h 2024-06-04 13:42:16 +00:00
qwineventnotifier Change license for tests files 2024-02-04 09:56:42 +01:00
qwinregistrykey Change license for tests files 2024-02-04 09:56:42 +01:00
CMakeLists.txt Add QChronoTimer, a timer with nanoseconds precision 2024-03-03 19:56:55 +02:00