From 5b8fa21512fa4b283847aea4bcd3be43e6fce7b7 Mon Sep 17 00:00:00 2001 From: Julien Marrec Date: Thu, 5 Sep 2024 17:58:37 +0200 Subject: [PATCH] Tests: Add a test covering the CPack IFW Generator --- Tests/CMakeLists.txt | 26 +++++ Tests/CPackIFWGenerator/ApplicationIcon.png | Bin 0 -> 2335 bytes Tests/CPackIFWGenerator/BundleIcon.icns | Bin 0 -> 33452 bytes Tests/CPackIFWGenerator/CMakeLists.txt | 54 ++++++++++ .../RunCPackVerifyResult.cmake | 93 ++++++++++++++++++ Tests/CPackIFWGenerator/SplashScreen.png | Bin 0 -> 909 bytes Tests/CPackIFWGenerator/install.ico | Bin 0 -> 838 bytes Tests/CPackIFWGenerator/main.cpp | 4 + 8 files changed, 177 insertions(+) create mode 100644 Tests/CPackIFWGenerator/ApplicationIcon.png create mode 100644 Tests/CPackIFWGenerator/BundleIcon.icns create mode 100644 Tests/CPackIFWGenerator/CMakeLists.txt create mode 100644 Tests/CPackIFWGenerator/RunCPackVerifyResult.cmake create mode 100644 Tests/CPackIFWGenerator/SplashScreen.png create mode 100644 Tests/CPackIFWGenerator/install.ico create mode 100644 Tests/CPackIFWGenerator/main.cpp diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 771f5db686..428ec8be1a 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1009,6 +1009,32 @@ if(BUILD_TESTING) "${CMake_BINARY_DIR}/Tests/CPackNSISGenerator/_CPack_Packages/win32/NSIS/NSISOutput.log") endif() + find_program(IFW_BINARYCREATOR_EXECUTABLE NAMES binarycreator + DOC "IFW binarycreator program location" + ) + + if(IFW_BINARYCREATOR_EXECUTABLE) + add_test(CPackIFWGenerator ${CMAKE_CTEST_COMMAND} + -C \${CTEST_CONFIGURATION_TYPE} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/CPackIFWGenerator" + "${CMake_BINARY_DIR}/Tests/CPackIFWGenerator" + ${build_generator_args} + --build-project CPackIFWGenerator + --build-options + --test-command ${CMAKE_CMAKE_COMMAND} + "-DCPackIFWGenerator_BINARY_DIR:PATH=${CMake_BINARY_DIR}/Tests/CPackIFWGenerator" + "-Dconfig=\${CTEST_CONFIGURATION_TYPE}" + -P "${CMake_SOURCE_DIR}/Tests/CPackIFWGenerator/RunCPackVerifyResult.cmake") + + set_property(TEST CPackIFWGenerator PROPERTY + ATTACHED_FILES_ON_FAIL + "${CMake_BINARY_DIR}/Tests/CPackIFWGenerator/_CPack_Packages/Linux/IFW/IFWOutput.log" + "${CMake_BINARY_DIR}/Tests/CPackIFWGenerator/_CPack_Packages/Darwin/IFW/IFWOutput.log" + "${CMake_BINARY_DIR}/Tests/CPackIFWGenerator/_CPack_Packages/win32/IFW/IFWOutput.log" + ) + endif() + if(CTEST_TEST_CPACK) add_test(CPackUseDefaultVersion ${CMAKE_CTEST_COMMAND} --build-and-test diff --git a/Tests/CPackIFWGenerator/ApplicationIcon.png b/Tests/CPackIFWGenerator/ApplicationIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..c715e1bc7336344cad881cf44e80beb61c6eddf6 GIT binary patch literal 2335 zcmV+)3E=jLP)k(&zS4oUq8ekI=8tJNiaj zfL&(Z7~2Wk0z;@z;ktzwRy4a4hR_Dk1rmaUAdnCw1c8JgAqXS{2|*wsKMqI;0trDv z5J<@3Pfl#|O=Ax+&8&}|*|9DX@*^_rrk-rIWv=}uvEv@iiLPD0fZDNx&C4fMRvzCnEC$HFAz2n#}!-zD3R~k&rC^uJG)`a1v0EQ(H`hi!pWttb$y^ z6Ww##)h(EKfFtPFU;rOprVcz9+Euq-geIZbpV48ESmDNL8M?K=$PWM9K7qNwyc~^`bwRp&f-tCQ?h8^?zddi40 zOYAD3GO>)1z%FuZfGN4If1|fMqi2nJsmDBVcEaK&-!?>(HRYpURWu#2G{$Wq`m^R4 z{La71Bdk^{eg{yQ1R)E#u4B`i-*WEJX2tJ=IZvG6>Ci$V=^^6JUp~NBl|7B~SgYW30sR81s6eG#>{#WHvy*r@O@P z=kI%W`DeN3&<7fV$GzMUIrZJ%_<7}H$t&t6(l>S3@q6Lq;9{Je1Ukg*CO+=6XMWXY zCGM=6OkMZcQ1sHbx?|@&+ZsN}R1-M*Po;qauX}xA3rz{BnaEtr@)D3hej!OPspRAT ztP1a-wI-{;7Nm+no&o#C7Hj%uP4*$bkr$Ctlo$bdggwMmz{056PQ7s|em$HD&j(VJ zplGVJJIX3>gs4hjaA2Y9oWt+Z#jy9G8t*P?N{9jjGaq5=VBynE9@1({-)hvR3oidY z-Q?d*H;Ez4YM+x=0pX@LU_fj^y7j51z=4_8iWMbil<8@= zW{Un$JhQcCgzQ{o-ne=^b^Tn3sijzv26;$=6ewGeDJ~w4UkF%i~Pq!2iv=udLp`M5x34btzy^DLSXQZtb{Cq)T9kjKb{arB*@@ZKs5 zF%=Fh5PyWHm;eH#NFmm0B`;NN>SWYIzbyeo&JjDQWj6IMRcgrHZ+mv`pNF%%+!$<2 z^BIbRv%l<6hc)vv`8>?lst8f8f4tloJ8sfTy_8Rrjj#{~lAPP(As>FKDR!V1^N{Rx zd>l^4*D;*P8g#myw1wyoKexm$fQ3;POSq5M`*ww$oH5tanR*NZ1v=W>3kn=zrqb9u zPKdj7Bc#!3F{;E}miZc@j5@^SJ!^L!LO}U5v4Ft|&X=KMhmwE}>2(nQFx(l#GoP|=tJfML*MwHX-3HV+o4yU`6y+@rh7mFwq~8ZRrqq(S z%rHV=`x{8IE}&y(g7n*l5%O4F=rB%@G=7>^t;+*c5F#)0{%wWZcYr6sI;R5ks~vNh zS5@yPXfgBNP~xU(Klw&5#kq15Tv(uB!7_vpN0@GeB``+t3>>laIfy?#)fzl_=}NuY ziS&&?W#WX8fESiwkfPVu`&*^=upt-qS7(&zAQ+KUTtK65A#m-z-G)C=Hk!Qr^2cqP ztrYUvNctk6GNCjVfu9vyfs;%#TbGX~ul{s6eqUZ(g861w>}(D65$&*=MhC| z^>v3~H}Mhpp5T?16q6}7Cr%BfIUC3U&QD=kkdWHNy(w1wO0DRa!|zmzr9DJ{`f!4U^<6#DW8}VL48|-(nHD5OaX+pr#wu#X%Gtg@$vSiTh2*<~ zk^NSBkc$#I*Lh|29sBhgjJQbCxR0tvLKHtXe1^x@g_&LC{U8g+i&C2%ziOqpNiX%{ zQk)zHUYD;I#J+~}pPb(w3Hg@5M^3;;PXL)Q5Bcy4A5MT=UzamHQ5V?}cJe=Rc8!FTjwCLAq&~RaH;Jtri=X_jy1*Vt2m%Q~LJ&xZ;Xy)> z5Cjr}gdmU*Bm{wkAR!1O1PNIelSBzCG9xKkU>$z*{{y_Vblu<5zDEE6002ovPDHLk FV1ju)WxfCa literal 0 HcmV?d00001 diff --git a/Tests/CPackIFWGenerator/BundleIcon.icns b/Tests/CPackIFWGenerator/BundleIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..8808dd62db64540292417e8865bdf627aaf8792e GIT binary patch literal 33452 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 literal 0 HcmV?d00001 diff --git a/Tests/CPackIFWGenerator/CMakeLists.txt b/Tests/CPackIFWGenerator/CMakeLists.txt new file mode 100644 index 0000000000..342c83f14f --- /dev/null +++ b/Tests/CPackIFWGenerator/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.16) + +project(CPackIFWGenerator) + +add_executable(hello main.cpp) + +install(TARGETS hello + ARCHIVE DESTINATION . + RUNTIME DESTINATION . + LIBRARY DESTINATION . + BUNDLE DESTINATION .) + +# Component that is a reserved name on Windows. +# See https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file +install( + DIRECTORY . + DESTINATION txt + COMPONENT CON + FILES_MATCHING PATTERN *.txt) +# Component name that is similar to a reserved name on Windows. +install( + DIRECTORY . + DESTINATION txt + COMPONENT Console + FILES_MATCHING PATTERN *.txt) +# Component name that is strongly discouraged on Windows. +install( + DIRECTORY . + DESTINATION txt + COMPONENT EndsWithDot. + FILES_MATCHING PATTERN *.txt) + +set(CPACK_IFW_PRODUCT_URL "https://cmake.org/") +if(WIN32) + set(CPACK_IFW_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/install.ico") +else() + set(CPACK_IFW_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/BundleIcon.icns") +endif() + +set(CPACK_IFW_PACKAGE_WINDOW_ICON "${PROJECT_SOURCE_DIR}/install.ico") +set(CPACK_GENERATOR "IFW") + +set(CPACK_IFW_PACKAGE_PRODUCT_IMAGES + "${PROJECT_SOURCE_DIR}/ApplicationIcon.png" + "${PROJECT_SOURCE_DIR}/SplashScreen.png" +) + +set(CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS + "https://www.ApplicationIcon.org" + "https://www.SplashScreen.org" +) + +include(CPack) +include(CPackIFW) diff --git a/Tests/CPackIFWGenerator/RunCPackVerifyResult.cmake b/Tests/CPackIFWGenerator/RunCPackVerifyResult.cmake new file mode 100644 index 0000000000..4ae6d41ead --- /dev/null +++ b/Tests/CPackIFWGenerator/RunCPackVerifyResult.cmake @@ -0,0 +1,93 @@ +message(STATUS "=============================================================") +message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)") +message(STATUS "") + +if(NOT CPackIFWGenerator_BINARY_DIR) + message(FATAL_ERROR "CPackIFWGenerator_BINARY_DIR not set") +endif() + +message(STATUS "CMAKE_COMMAND: ${CMAKE_COMMAND}") +message(STATUS "CMAKE_CPACK_COMMAND: ${CMAKE_CPACK_COMMAND}") +message(STATUS "CPackIFWGenerator_BINARY_DIR: ${CPackIFWGenerator_BINARY_DIR}") + +if(config) + set(_C_config -C ${config}) +endif() + +execute_process(COMMAND "${CMAKE_CPACK_COMMAND}" + ${_C_config} + RESULT_VARIABLE CPack_result + OUTPUT_VARIABLE CPack_output + ERROR_VARIABLE CPack_error + WORKING_DIRECTORY "${CPackIFWGenerator_BINARY_DIR}") + +if(CPack_result) + message(FATAL_ERROR "CPack execution went wrong!, CPack_output=${CPack_output}, CPack_error=${CPack_error}") +else () + message(STATUS "CPack_output=${CPack_output}") +endif() + +set(expected_file_mask "${CPackIFWGenerator_BINARY_DIR}/_CPack_Packages/*/IFW/*/config/config.xml") +file(GLOB project_file "${expected_file_mask}") + +message(STATUS "project_file='${project_file}'") +message(STATUS "expected_file_mask='${expected_file_mask}'") + +if(NOT project_file) + message(FATAL_ERROR "project_file does not exist.") +endif() + +# should match !define MUI_HEADERIMAGE_BITMAP "${PROJECT_SOURCE_DIR}\header-image.bmp" +file(STRINGS "${project_file}" lines) + +file(STRINGS "${project_file}" tag_start REGEX [[]]) +file(STRINGS "${project_file}" tag_end REGEX [[]]) +list(LENGTH tag_start tag_start_size) +list(LENGTH tag_end tag_end_size) + +if(NOT tag_start_size EQUAL 2) + message(FATAL_ERROR "Expected to have 2 not ${tag_start_size}") +endif() +if(NOT tag_end_size EQUAL 2) + message(FATAL_ERROR "Expected to have 2 not ${tag_end_size}") +endif() + +file(STRINGS "${project_file}" tag_start REGEX [[]]) +file(STRINGS "${project_file}" tag_end REGEX [[]]) +list(LENGTH tag_start tag_start_size) +list(LENGTH tag_end tag_end_size) + +if(NOT tag_start_size EQUAL 2) + message(FATAL_ERROR "Expected to have 2 not ${tag_start_size}") +endif() +if(NOT tag_end_size EQUAL 2) + message(FATAL_ERROR "Expected to have 2 not ${tag_end_size}") +endif() + +file(STRINGS "${project_file}" tag_start REGEX [[]]) +file(STRINGS "${project_file}" tag_end REGEX [[]]) +list(LENGTH tag_start tag_start_size) +list(LENGTH tag_end tag_end_size) + +if(NOT tag_start_size EQUAL 2) + message(FATAL_ERROR "Expected to have 2 not ${tag_start_size}") +endif() +if(NOT tag_end_size EQUAL 2) + message(FATAL_ERROR "Expected to have 2 not ${tag_end_size}") +endif() + +set(TO_SEARCHES + "" + "ApplicationIcon.png" + "https://www.ApplicationIcon.org" + "SplashScreen.png" + "https://www.SplashScreen.org" + "" +) +foreach(TO_SEARCH ${TO_SEARCHES}) + string(FIND "${lines}" "${TO_SEARCH}" output_index) + message(STATUS "Found the ${TO_SEARCH} at index ${output_index}") + if("${output_index}" EQUAL "-1") + message(FATAL_ERROR "${TO_SEARCH} not found in the project") + endif() +endforeach() diff --git a/Tests/CPackIFWGenerator/SplashScreen.png b/Tests/CPackIFWGenerator/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..83425658095012eba18a92d2d1a3038a46239d9e GIT binary patch literal 909 zcmeAS@N?(olHy`uVBq!ia0y~yV9H@&VANq^28u9yv%3Q+&H$efS0Mc#42mn3CWGWk zg8YIR_LqlyO)>-W3_M*NLn;{GoHJx(U|?Y|n5DU}UR3f!9;etFpa2j|s13}^yFYvO z?Asr_j++QDIWVy3-&bVuZV}R)ap1l7j3=vNS)K zsuet#whzc(n$N_Z_j2}u#^_&c1rM(6W0cvkHJ^b!@2xaY=r>lON7ME(&H-vp^UFR?il zr76!_X)VolbY^eWw0AiMEa_&SBzJ9ocwzR<7wON>sJY~&DKD65JX>h%)U!=t>v95) zq?rjx?cA7nQ0hj8$KwlZY+32bN}b-)QcLFcc8T!i7BrNZ83|czGL$)Y?pVPW-drB` z&6^EnDy^jtZ;Vb)wkYGyGcmyP&P)+o8EvWBK!!+?)16?Y%y8{egey*k>}Qn5M=|;GMS8Ni4RF|E~L7 z!IIq4DRtyy8Xl8ulb%uXKkYU<^XGcw#xTT!A-xQuP+wjhk=|$L+B{NP>W^R2K zac=I;F3Wi@jy)5Z-97hk-@E^}b~l64BU|IYYnEU3akv#EtJ!2XT{O%URy(t~M8f5A zUQ(Q`cF#t$T&rdGHw#Ekx_mEXn%(QE6RmR-)jn@tBl+O6U-~)w)%TAd{L}Vf<;Q&< zH9O9{m!9wVKKrEm)!*Mfb(-yaQuE>Nd#CyR|Fth4fAK%