Tests: Add case for CPack DMG multi-language SLAs

Add a test for the feature added by commit f88533cc06 (CPackDMG: Add
support for multilingual SLAs, 2015-10-19, v3.5.0-rc1~232^2).

Issue: #20889
This commit is contained in:
Brad King
2020-07-02 14:22:40 -04:00
parent 925c026c31
commit b9737ead1f
11 changed files with 67 additions and 0 deletions
@@ -0,0 +1 @@
y
@@ -5,6 +5,7 @@ function(getPackageContent FILE RESULT_VAR)
file(REMOVE_RECURSE "${path_}/content")
file(MAKE_DIRECTORY "${path_}/content")
execute_process(COMMAND ${HDIUTIL_EXECUTABLE} attach -mountroot ${path_}/content -nobrowse ${FILE}
INPUT_FILE "${src_dir}/DragNDrop/Accept.txt"
RESULT_VARIABLE attach_result_
ERROR_VARIABLE attach_error_
OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -0,0 +1,2 @@
set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK ON)
set(CPACK_DMG_VOLUME_NAME "volume-name")
+1
View File
@@ -10,6 +10,7 @@ run_cpack_test(DEBUGINFO "RPM.DEBUGINFO;DEB.DEBUGINFO" true "COMPONENT")
run_cpack_test_subtests(DEFAULT_PERMISSIONS "CMAKE_var_set;CPACK_var_set;both_set;invalid_CMAKE_var;invalid_CPACK_var" "RPM.DEFAULT_PERMISSIONS;DEB.DEFAULT_PERMISSIONS" false "MONOLITHIC;COMPONENT")
run_cpack_test(DEPENDENCIES "RPM.DEPENDENCIES;DEB.DEPENDENCIES" true "COMPONENT")
run_cpack_test(DIST "RPM.DIST" false "MONOLITHIC")
run_cpack_test(DMG_SLA "DragNDrop" false "MONOLITHIC")
run_cpack_test(EMPTY_DIR "RPM.EMPTY_DIR;DEB.EMPTY_DIR;TGZ" true "MONOLITHIC;COMPONENT")
run_cpack_test(VERSION "RPM.VERSION;DEB.VERSION" false "MONOLITHIC;COMPONENT")
run_cpack_test(EXTRA "DEB.EXTRA" false "COMPONENT")
@@ -0,0 +1,3 @@
LICENSE
-------
This is an installer created using CPack (https://cmake.org). No license provided.
@@ -0,0 +1,9 @@
English
Agree
Disagree
Print
Save...
You agree to the License Agreement terms when you click the "Agree" button.
Software License Agreement
This text cannot be saved. This disk may be full or locked or the file may be locked.
Unable to print. Make sure you have selected a printer.
@@ -0,0 +1,2 @@
set(EXPECTED_FILES_COUNT "1")
set(EXPECTED_FILE_CONTENT_1_LIST "/foo;/foo/CMakeLists.txt")
@@ -0,0 +1,3 @@
LIZENZ
------
Dies ist ein Installationsprogramm, das mit erstellt wurde CPack (https://cmake.org). Keine Lizenz angegeben.
@@ -0,0 +1,9 @@
German
Akzeptieren
Ablehnen
Drucken
Speichern...
Klicken Sie auf "Akzeptieren", wenn Sie mit den Bestimmungen des Software-Lizenzvertrages einverstanden sind.
Software-Lizenzvertrag
Dieser Text kann nicht gesichert werden. Diese Festplatte ist mšglicherweise voll oder geschŸtzt oder der Ordner ist geschŸtzt.
Es kann nicht gedruckt werden. Bitte stellen Sie sicher, dass ein Drucker ausgewŠhlt ist.
@@ -0,0 +1,33 @@
set(dmg "${bin_dir}/${FOUND_FILE_1}")
execute_process(COMMAND hdiutil udifderez -xml "${dmg}" OUTPUT_VARIABLE out ERROR_VARIABLE err RESULT_VARIABLE res)
if(NOT res EQUAL 0)
string(REPLACE "\n" "\n " err " ${err}")
message(FATAL_ERROR "Running 'hdiutil udifderez -xml' on\n ${dmg}\nfailed with:\n${err}")
endif()
foreach(key "LPic" "STR#" "TEXT")
if(NOT out MATCHES "<key>${key}</key>")
string(REPLACE "\n" "\n " out " ${out}")
message(FATAL_ERROR "error: running 'hdiutil udifderez -xml' on\n ${dmg}\ndid not show '${key}' key:\n${out}")
endif()
endforeach()
foreach(line
# LPic
"\tAAAAAgAAAAAAAAADAAEAAA==\n"
# STR# English first and last base64 lines
"\tAAkHRW5nbGlzaAVBZ3JlZQhEaXNhZ3JlZQVQcmludAdTYXZlLi4u\n"
"\tZCBhIHByaW50ZXIu\n"
# STR# German first and last base64 lines
"\tAAkGR2VybWFuC0FremVwdGllcmVuCEFibGVobmVuB0RydWNrZW4M\n"
"\tYXVzZ2V3wopobHQgaXN0Lg==\n"
# TEXT English first and last base64 lines
"\tTElDRU5TRQ0tLS0tLS0tDVRoaXMgaXMgYW4gaW5zdGFsbGVyIGNy\n"
"\tTm8gbGljZW5zZSBwcm92aWRlZC4NDQ==\n"
# TEXT German first and last base64 lines
"\tTElaRU5aDS0tLS0tLQ1EaWVzIGlzdCBlaW4gSW5zdGFsbGF0aW9u\n"
"\tZ2ViZW4uDQ0=\n"
)
if(NOT out MATCHES "${line}")
string(REPLACE "\n" "\n " out " ${out}")
message(FATAL_ERROR "error: running 'hdiutil udifderez -xml' on\n ${dmg}\ndid not show '${line}':\n${out}")
endif()
endforeach()
@@ -0,0 +1,3 @@
install(FILES CMakeLists.txt DESTINATION foo)
set(CPACK_DMG_SLA_DIR "${CMAKE_CURRENT_LIST_DIR}")
set(CPACK_DMG_SLA_LANGUAGES English German)