From 009c480413910e8c1a18f4d1420f4a517ea606e6 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Wed, 14 Oct 2015 12:18:40 +0100 Subject: Make sure we load translations on the main thread. BUG: 346188 REVIEW: 123726 --- tests/ECMPoQmToolsTest/check.cmake.in | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/ECMPoQmToolsTest/check.cmake.in (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in new file mode 100644 index 00000000..2f0cc205 --- /dev/null +++ b/tests/ECMPoQmToolsTest/check.cmake.in @@ -0,0 +1,81 @@ +set(BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@") +set(ACTUAL_TREE "@CMAKE_INSTALL_PREFIX@") +include("${BINARY_DIR}/check_conf.cmake") + +set(fail OFF) + +macro(mark_failed msg) + message(WARNING "FAIL: ${msg}") + set(fail ON) +endmacro() + +macro(check_exists file) + message(STATUS "Checking for ${file}") + if (NOT EXISTS ${file}) + mark_failed("File \"${file}\" does not exist") + endif() +endmacro() + +check_exists(${BINARY_DIR}/fr/only-process.qm) + +set(exp_files + "share/locale/fr/LC_MESSAGES/process-and-install.qm" + "share/locale/es/LC_MESSAGES/install-test.qm" + "share/locale/fr/LC_MESSAGES/install-test.qm" + "share/locale/en/LC_MESSAGES/catalog.qm" + "share/locale/en_GB/LC_MESSAGES/catalog.qm" + "custom-dir1/es/LC_MESSAGES/custom-dir1-install-test.qm" + "custom-dir1/fr/LC_MESSAGES/custom-dir1-install-test.qm" + "custom-dir2/es/LC_MESSAGES/custom-dir2-install-test.qm" + "custom-dir2/fr/LC_MESSAGES/custom-dir2-install-test.qm" +) +file(GLOB_RECURSE actual_files RELATIVE "${ACTUAL_TREE}" "${ACTUAL_TREE}/*") +list(SORT exp_files) +list(SORT actual_files) + +if(NOT exp_files STREQUAL actual_files) + foreach(f ${exp_files}) + list(FIND actual_files "${f}" result) + if(result EQUAL -1) + message(WARNING "${f} was expected, but not found") + set(fail ON) + endif() + endforeach() + foreach(f ${actual_files}) + list(FIND exp_files "${f}" result) + if(result EQUAL -1) + message(WARNING "${f} was found, but not expected") + set(fail ON) + endif() + endforeach() +else() + message(STATUS "Installed translations in expected locations") +endif() + +# we know we can modify the executable environment on Linux +if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") + set(exp_output_en "english text:english plural form 5") + set(exp_output_en_GB "british english text:british english plural form 5") + # no french translation provided -> english fallback + set(exp_output_fr "${exp_output_en}") + foreach(exec TR_TEST TR_THREAD_TEST) + foreach(lang en en_GB fr) + execute_process( + COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" + LC_ALL=${lang} "${${exec}_EXEC}" + OUTPUT_VARIABLE output + ) + string(STRIP "${output}" stripped_output) + if(NOT stripped_output STREQUAL exp_output_${lang}) + message(WARNING "${exec}[${lang}] output was \"${stripped_output}\", but expected \"${exp_output_${lang}}\"") + set(fail ON) + else() + message(STATUS "${exec}[${lang}] output was \"${stripped_output}\", as expected") + endif() + endforeach() + endforeach() +endif() + +if (fail) + message(FATAL_ERROR "Test failed!") +endif() -- cgit v1.2.1 From 0496f8ae020c497b5f65234063150781d023f8ba Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Tue, 3 Nov 2015 17:13:00 +0000 Subject: Change ecm_create_po_loader test language to German. This is easier to distinguish from "english" in the test output than "british english". --- tests/ECMPoQmToolsTest/check.cmake.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in index 2f0cc205..8089db6e 100644 --- a/tests/ECMPoQmToolsTest/check.cmake.in +++ b/tests/ECMPoQmToolsTest/check.cmake.in @@ -23,7 +23,7 @@ set(exp_files "share/locale/es/LC_MESSAGES/install-test.qm" "share/locale/fr/LC_MESSAGES/install-test.qm" "share/locale/en/LC_MESSAGES/catalog.qm" - "share/locale/en_GB/LC_MESSAGES/catalog.qm" + "share/locale/de/LC_MESSAGES/catalog.qm" "custom-dir1/es/LC_MESSAGES/custom-dir1-install-test.qm" "custom-dir1/fr/LC_MESSAGES/custom-dir1-install-test.qm" "custom-dir2/es/LC_MESSAGES/custom-dir2-install-test.qm" @@ -55,11 +55,11 @@ endif() # we know we can modify the executable environment on Linux if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") set(exp_output_en "english text:english plural form 5") - set(exp_output_en_GB "british english text:british english plural form 5") + set(exp_output_de "german text:german plural form 5") # no french translation provided -> english fallback set(exp_output_fr "${exp_output_en}") foreach(exec TR_TEST TR_THREAD_TEST) - foreach(lang en en_GB fr) + foreach(lang en de fr) execute_process( COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" LC_ALL=${lang} "${${exec}_EXEC}" -- cgit v1.2.1 From 39484722101730d4f1a4bccbc5467c0eb2cc0f6f Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Tue, 3 Nov 2015 17:27:45 +0000 Subject: Fix ECMPoQmToolsTest. LANGUAGE has higher priority than LC_ALL. --- tests/ECMPoQmToolsTest/check.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in index 8089db6e..6e6d46fe 100644 --- a/tests/ECMPoQmToolsTest/check.cmake.in +++ b/tests/ECMPoQmToolsTest/check.cmake.in @@ -62,7 +62,7 @@ if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") foreach(lang en de fr) execute_process( COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" - LC_ALL=${lang} "${${exec}_EXEC}" + LANGUAGE=${lang} "${${exec}_EXEC}" OUTPUT_VARIABLE output ) string(STRIP "${output}" stripped_output) -- cgit v1.2.1 From 994940ae780a860935f5321830fab1955a687b44 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Sun, 8 Nov 2015 19:20:15 +0000 Subject: Revert "Fix ECMPoQmToolsTest." This commit is dependent on 009c480413910e8c1a18f4d1420f4a517ea606e6, which is the primary commit to be reverted. This reverts commit 39484722101730d4f1a4bccbc5467c0eb2cc0f6f. --- tests/ECMPoQmToolsTest/check.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in index 6e6d46fe..8089db6e 100644 --- a/tests/ECMPoQmToolsTest/check.cmake.in +++ b/tests/ECMPoQmToolsTest/check.cmake.in @@ -62,7 +62,7 @@ if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") foreach(lang en de fr) execute_process( COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" - LANGUAGE=${lang} "${${exec}_EXEC}" + LC_ALL=${lang} "${${exec}_EXEC}" OUTPUT_VARIABLE output ) string(STRIP "${output}" stripped_output) -- cgit v1.2.1 From 9d4be698a3a9a0b81730d2d54de5dd33b7dc61dc Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Sun, 8 Nov 2015 19:23:14 +0000 Subject: Revert "Change ecm_create_po_loader test language to German." This commit is dependent on 009c480413910e8c1a18f4d1420f4a517ea606e6, which is the primary commit to be reverted. This reverts commit 0496f8ae020c497b5f65234063150781d023f8ba. --- tests/ECMPoQmToolsTest/check.cmake.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in index 8089db6e..2f0cc205 100644 --- a/tests/ECMPoQmToolsTest/check.cmake.in +++ b/tests/ECMPoQmToolsTest/check.cmake.in @@ -23,7 +23,7 @@ set(exp_files "share/locale/es/LC_MESSAGES/install-test.qm" "share/locale/fr/LC_MESSAGES/install-test.qm" "share/locale/en/LC_MESSAGES/catalog.qm" - "share/locale/de/LC_MESSAGES/catalog.qm" + "share/locale/en_GB/LC_MESSAGES/catalog.qm" "custom-dir1/es/LC_MESSAGES/custom-dir1-install-test.qm" "custom-dir1/fr/LC_MESSAGES/custom-dir1-install-test.qm" "custom-dir2/es/LC_MESSAGES/custom-dir2-install-test.qm" @@ -55,11 +55,11 @@ endif() # we know we can modify the executable environment on Linux if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") set(exp_output_en "english text:english plural form 5") - set(exp_output_de "german text:german plural form 5") + set(exp_output_en_GB "british english text:british english plural form 5") # no french translation provided -> english fallback set(exp_output_fr "${exp_output_en}") foreach(exec TR_TEST TR_THREAD_TEST) - foreach(lang en de fr) + foreach(lang en en_GB fr) execute_process( COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" LC_ALL=${lang} "${${exec}_EXEC}" -- cgit v1.2.1 From 6745bd7e4796560959bb67e33b7c7f86f96a5a94 Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Sun, 8 Nov 2015 19:23:22 +0000 Subject: Revert "Make sure we load translations on the main thread." This broke the build for projects which used ecm_create_qm_loader in unusual ways. A better approach is coming, but won't be in e-c-m 5.16. This reverts commit 009c480413910e8c1a18f4d1420f4a517ea606e6. CCBUG: 346188 CCMAIL: release-team@kde.org CCMAIL: kde-buildsystem@kde.org --- tests/ECMPoQmToolsTest/check.cmake.in | 81 ----------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 tests/ECMPoQmToolsTest/check.cmake.in (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in deleted file mode 100644 index 2f0cc205..00000000 --- a/tests/ECMPoQmToolsTest/check.cmake.in +++ /dev/null @@ -1,81 +0,0 @@ -set(BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@") -set(ACTUAL_TREE "@CMAKE_INSTALL_PREFIX@") -include("${BINARY_DIR}/check_conf.cmake") - -set(fail OFF) - -macro(mark_failed msg) - message(WARNING "FAIL: ${msg}") - set(fail ON) -endmacro() - -macro(check_exists file) - message(STATUS "Checking for ${file}") - if (NOT EXISTS ${file}) - mark_failed("File \"${file}\" does not exist") - endif() -endmacro() - -check_exists(${BINARY_DIR}/fr/only-process.qm) - -set(exp_files - "share/locale/fr/LC_MESSAGES/process-and-install.qm" - "share/locale/es/LC_MESSAGES/install-test.qm" - "share/locale/fr/LC_MESSAGES/install-test.qm" - "share/locale/en/LC_MESSAGES/catalog.qm" - "share/locale/en_GB/LC_MESSAGES/catalog.qm" - "custom-dir1/es/LC_MESSAGES/custom-dir1-install-test.qm" - "custom-dir1/fr/LC_MESSAGES/custom-dir1-install-test.qm" - "custom-dir2/es/LC_MESSAGES/custom-dir2-install-test.qm" - "custom-dir2/fr/LC_MESSAGES/custom-dir2-install-test.qm" -) -file(GLOB_RECURSE actual_files RELATIVE "${ACTUAL_TREE}" "${ACTUAL_TREE}/*") -list(SORT exp_files) -list(SORT actual_files) - -if(NOT exp_files STREQUAL actual_files) - foreach(f ${exp_files}) - list(FIND actual_files "${f}" result) - if(result EQUAL -1) - message(WARNING "${f} was expected, but not found") - set(fail ON) - endif() - endforeach() - foreach(f ${actual_files}) - list(FIND exp_files "${f}" result) - if(result EQUAL -1) - message(WARNING "${f} was found, but not expected") - set(fail ON) - endif() - endforeach() -else() - message(STATUS "Installed translations in expected locations") -endif() - -# we know we can modify the executable environment on Linux -if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") - set(exp_output_en "english text:english plural form 5") - set(exp_output_en_GB "british english text:british english plural form 5") - # no french translation provided -> english fallback - set(exp_output_fr "${exp_output_en}") - foreach(exec TR_TEST TR_THREAD_TEST) - foreach(lang en en_GB fr) - execute_process( - COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" - LC_ALL=${lang} "${${exec}_EXEC}" - OUTPUT_VARIABLE output - ) - string(STRIP "${output}" stripped_output) - if(NOT stripped_output STREQUAL exp_output_${lang}) - message(WARNING "${exec}[${lang}] output was \"${stripped_output}\", but expected \"${exp_output_${lang}}\"") - set(fail ON) - else() - message(STATUS "${exec}[${lang}] output was \"${stripped_output}\", as expected") - endif() - endforeach() - endforeach() -endif() - -if (fail) - message(FATAL_ERROR "Test failed!") -endif() -- cgit v1.2.1 From c88bc78e0ca3834c46b89ca9d14b404751da5d4a Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Wed, 14 Oct 2015 12:18:40 +0100 Subject: Add unit test for ecm_create_qm_loader. This is based on commit 6745bd7e4796560959bb67e33b7c7f86f96a5a94 (and the subsequent fix-up commits). --- tests/ECMPoQmToolsTest/check.cmake.in | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/ECMPoQmToolsTest/check.cmake.in (limited to 'tests/ECMPoQmToolsTest/check.cmake.in') diff --git a/tests/ECMPoQmToolsTest/check.cmake.in b/tests/ECMPoQmToolsTest/check.cmake.in new file mode 100644 index 00000000..ab434d2e --- /dev/null +++ b/tests/ECMPoQmToolsTest/check.cmake.in @@ -0,0 +1,81 @@ +set(BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@") +set(ACTUAL_TREE "@CMAKE_INSTALL_PREFIX@") +include("${BINARY_DIR}/check_conf.cmake") + +set(fail OFF) + +macro(mark_failed msg) + message(WARNING "FAIL: ${msg}") + set(fail ON) +endmacro() + +macro(check_exists file) + message(STATUS "Checking for ${file}") + if (NOT EXISTS ${file}) + mark_failed("File \"${file}\" does not exist") + endif() +endmacro() + +check_exists(${BINARY_DIR}/fr/only-process.qm) + +set(exp_files + "share/locale/fr/LC_MESSAGES/process-and-install.qm" + "share/locale/es/LC_MESSAGES/install-test.qm" + "share/locale/fr/LC_MESSAGES/install-test.qm" + "share/locale/en/LC_MESSAGES/catalog.qm" + "share/locale/de/LC_MESSAGES/catalog.qm" + "custom-dir1/es/LC_MESSAGES/custom-dir1-install-test.qm" + "custom-dir1/fr/LC_MESSAGES/custom-dir1-install-test.qm" + "custom-dir2/es/LC_MESSAGES/custom-dir2-install-test.qm" + "custom-dir2/fr/LC_MESSAGES/custom-dir2-install-test.qm" +) +file(GLOB_RECURSE actual_files RELATIVE "${ACTUAL_TREE}" "${ACTUAL_TREE}/*") +list(SORT exp_files) +list(SORT actual_files) + +if(NOT exp_files STREQUAL actual_files) + foreach(f ${exp_files}) + list(FIND actual_files "${f}" result) + if(result EQUAL -1) + message(WARNING "${f} was expected, but not found") + set(fail ON) + endif() + endforeach() + foreach(f ${actual_files}) + list(FIND exp_files "${f}" result) + if(result EQUAL -1) + message(WARNING "${f} was found, but not expected") + set(fail ON) + endif() + endforeach() +else() + message(STATUS "Installed translations in expected locations") +endif() + +# we know we can modify the executable environment on Linux +if("@CMAKE_SYSTEM_NAME@" STREQUAL "Linux") + set(exp_output_en "english text:english plural form 5") + set(exp_output_de "german text:german plural form 5") + # no french translation provided -> english fallback + set(exp_output_fr "${exp_output_en}") + foreach(exec TR_TEST TR_TEST_SUBDIR) + foreach(lang en de fr) + execute_process( + COMMAND "${CMAKE_COMMAND}" -E env "XDG_DATA_DIRS=${ACTUAL_TREE}/share" + LANGUAGE=${lang} "${${exec}_EXEC}" + OUTPUT_VARIABLE output + ) + string(STRIP "${output}" stripped_output) + if(NOT stripped_output STREQUAL exp_output_${lang}) + message(WARNING "${exec}[${lang}] output was \"${stripped_output}\", but expected \"${exp_output_${lang}}\"") + set(fail ON) + else() + message(STATUS "${exec}[${lang}] output was \"${stripped_output}\", as expected") + endif() + endforeach() + endforeach() +endif() + +if (fail) + message(FATAL_ERROR "Test failed!") +endif() -- cgit v1.2.1