From fa18211e4d742901209f18d5acd861414f686553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 6 Jan 2023 16:59:39 +0100 Subject: [PATCH 1/3] Utility: test corrade_add_resource() with Unicode filenames. --- src/Corrade/Utility/Test/CMakeLists.txt | 3 +++ src/Corrade/Utility/Test/ResourceTest.cpp | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/Corrade/Utility/Test/CMakeLists.txt b/src/Corrade/Utility/Test/CMakeLists.txt index c487d2897..febae98c9 100644 --- a/src/Corrade/Utility/Test/CMakeLists.txt +++ b/src/Corrade/Utility/Test/CMakeLists.txt @@ -318,17 +318,20 @@ corrade_add_test(UtilityUnicodeTest UnicodeTest.cpp LIBRARIES CorradeTestSuiteTe corrade_add_resource(ResourceTestData ResourceTestFiles/resources.conf) corrade_add_resource(ResourceTestEmptyFileData ResourceTestFiles/resources-empty-file.conf) corrade_add_resource(ResourceTestNothingData ResourceTestFiles/resources-nothing.conf) +corrade_add_resource(ResourceTestUtf8Data ResourceTestFiles/hýždě.conf) corrade_add_resource(ResourceTestSpacesData ResourceTestFiles/resources-spaces.conf) corrade_add_resource(ResourceTestNullTerminatedAlignedData ResourceTestFiles/resources-null-terminated-aligned.conf) corrade_add_resource(ResourceTestNullTerminatedLastFileData ResourceTestFiles/resources-null-terminated-last-file.conf) corrade_add_resource(ResourceTestAlignmentLargerThanDataSizeData ResourceTestFiles/resources-alignment-larger-than-data-size.conf) corrade_add_resource(ResourceTestSingleData ResourceTestFiles/consequence.bin SINGLE) corrade_add_resource(ResourceTestSingleEmptyData ResourceTestFiles/empty.bin SINGLE) + corrade_add_test(UtilityResourceTest ResourceTest.cpp ${ResourceTestData} ${ResourceTestEmptyFileData} ${ResourceTestNothingData} + ${ResourceTestUtf8Data} ${ResourceTestSpacesData} ${ResourceTestNullTerminatedAlignedData} ${ResourceTestNullTerminatedLastFileData} diff --git a/src/Corrade/Utility/Test/ResourceTest.cpp b/src/Corrade/Utility/Test/ResourceTest.cpp index 0694930de..1d10151c8 100644 --- a/src/Corrade/Utility/Test/ResourceTest.cpp +++ b/src/Corrade/Utility/Test/ResourceTest.cpp @@ -73,6 +73,7 @@ struct ResourceTest: TestSuite::Tester { void getEmptyFileRaw(); void getEmptyFileString(); void getNonexistentFile(); + void getUtf8Filename(); void filenameWithSpaces(); void nullTerminatedAligned(); @@ -108,6 +109,7 @@ ResourceTest::ResourceTest() { &ResourceTest::getEmptyFileRaw, &ResourceTest::getEmptyFileString, &ResourceTest::getNonexistentFile, + &ResourceTest::getUtf8Filename, &ResourceTest::filenameWithSpaces, &ResourceTest::nullTerminatedAligned, @@ -367,6 +369,14 @@ void ResourceTest::getNonexistentFile() { "Utility::Resource::get(): file 'nonexistentFile' was not found in group 'test'\n"); } +void ResourceTest::getUtf8Filename() { + Resource rs{"unicode"}; + + CORRADE_COMPARE_AS(rs.getString("hýždě.bin"), + Path::join(RESOURCE_TEST_DIR, "hýždě.bin"), + TestSuite::Compare::StringToFile); +} + void ResourceTest::filenameWithSpaces() { Resource rs{"spaces"}; From 82c1d0c14535f9e744353139bb9fbd26f912ff03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 6 Jan 2023 16:59:58 +0100 Subject: [PATCH 2/3] Utility: this file isn't used in this test. It's used just during the build, and in the ResourceCompileTest. --- src/Corrade/Utility/Test/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Corrade/Utility/Test/CMakeLists.txt b/src/Corrade/Utility/Test/CMakeLists.txt index febae98c9..c6b2af593 100644 --- a/src/Corrade/Utility/Test/CMakeLists.txt +++ b/src/Corrade/Utility/Test/CMakeLists.txt @@ -349,7 +349,6 @@ corrade_add_test(UtilityResourceTest ResourceTestFiles/consequence2.txt ResourceTestFiles/empty.bin ResourceTestFiles/hýždě.bin - ResourceTestFiles/hýždě.conf ResourceTestFiles/predisposition.bin # Referenced from resources-overriden.conf ResourceTestFiles/predisposition2.txt From e224b5e8f45485ac4074b307632db63a69d559a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Fri, 6 Jan 2023 19:15:56 +0100 Subject: [PATCH 3/3] package/ci: use Ninja 1.11 on Windows to fix it with UTF-8 filenames. --- package/ci/appveyor-cache-reset.txt | 2 +- package/ci/appveyor.yml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package/ci/appveyor-cache-reset.txt b/package/ci/appveyor-cache-reset.txt index f7416fddf..6e3e6bb88 100644 --- a/package/ci/appveyor-cache-reset.txt +++ b/package/ci/appveyor-cache-reset.txt @@ -1,3 +1,3 @@ # Increase this number every time you want to reset AppVeyor cache. # http://help.appveyor.com/discussions/questions/1310-delete-cache -0 +1 diff --git a/package/ci/appveyor.yml b/package/ci/appveyor.yml index 0a07a8779..ad2ea40dc 100644 --- a/package/ci/appveyor.yml +++ b/package/ci/appveyor.yml @@ -111,7 +111,9 @@ environment: install: # Ninja. `cinst ninja` started 503ing in late November 2019 and wasn't really # reliable before either. So install by hand, as that's reliable always. -- IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\ninja-win.zip appveyor DownloadFile https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip +# Version 1.11 needed to make UTF-8 work with corrade_add_resource(): +# https://github.com/ninja-build/ninja/pull/1915 +- IF NOT EXIST %APPVEYOR_BUILD_FOLDER%\ninja-win.zip appveyor DownloadFile https://github.com/ninja-build/ninja/releases/download/v1.11.0/ninja-win.zip - 7z x ninja-win.zip -oC:/tools/ninja - set PATH=C:/tools/ninja;%PATH%