diff options
| author | Kenjiro Nakayama <nakayamakenjiro@gmail.com> | 2026-07-30 08:01:17 +0900 |
|---|---|---|
| committer | Kenjiro Nakayama <nakayamakenjiro@gmail.com> | 2026-07-30 08:20:46 +0900 |
| commit | 0ffff5c1543b3c88640e8b61d52057e96c71da64 (patch) | |
| tree | e33f437f58a8d0e761f05651045cfd94c726012f | |
| parent | 686304f1581c4bbc49e8a87408e9e38d4b72445a (diff) | |
| download | portable-0ffff5c1543b3c88640e8b61d52057e96c71da64.tar.gz portable-0ffff5c1543b3c88640e8b61d52057e96c71da64.tar.bz2 portable-0ffff5c1543b3c88640e8b61d52057e96c71da64.zip | |
Run libssl verify test on windows
| -rw-r--r-- | .github/workflows/windows.yml | 9 | ||||
| -rw-r--r-- | tests/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | tests/Makefile.am | 1 | ||||
| -rw-r--r-- | tests/ssl_verify.bat | 42 |
4 files changed, 61 insertions, 4 deletions
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 0cd342e..4814ffa 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml | |||
| @@ -29,6 +29,7 @@ jobs: | |||
| 29 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | 29 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 30 | 30 | ||
| 31 | - name: "Setup MSYS2" | 31 | - name: "Setup MSYS2" |
| 32 | id: msys2 | ||
| 32 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 | 33 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 |
| 33 | with: | 34 | with: |
| 34 | update: true | 35 | update: true |
| @@ -38,6 +39,7 @@ jobs: | |||
| 38 | git | 39 | git |
| 39 | patch | 40 | patch |
| 40 | perl | 41 | perl |
| 42 | perl-IO-Socket-SSL | ||
| 41 | 43 | ||
| 42 | - name: "Update" | 44 | - name: "Update" |
| 43 | shell: msys2 {0} | 45 | shell: msys2 {0} |
| @@ -46,6 +48,11 @@ jobs: | |||
| 46 | - name: "Configure CMake" | 48 | - name: "Configure CMake" |
| 47 | shell: pwsh | 49 | shell: pwsh |
| 48 | run: | | 50 | run: | |
| 51 | $perl = Join-Path '${{ steps.msys2.outputs.msys2-location }}' 'usr\bin\perl.exe' | ||
| 52 | & $perl -MIO::Socket::SSL::Utils -e 1 | ||
| 53 | if ($LASTEXITCODE -ne 0) { | ||
| 54 | throw "IO::Socket::SSL::Utils is unavailable" | ||
| 55 | } | ||
| 49 | $generator = cmake --help | | 56 | $generator = cmake --help | |
| 50 | Select-String '^\s*\*?\s*(Visual Studio \d+ \d+)' | | 57 | Select-String '^\s*\*?\s*(Visual Studio \d+ \d+)' | |
| 51 | Select-Object -First 1 | | 58 | Select-Object -First 1 | |
| @@ -54,7 +61,7 @@ jobs: | |||
| 54 | throw "No Visual Studio CMake generator found" | 61 | throw "No Visual Studio CMake generator found" |
| 55 | } | 62 | } |
| 56 | Write-Host "Using generator: $generator" | 63 | Write-Host "Using generator: $generator" |
| 57 | cmake -Bbuild -G "$generator" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local | 64 | cmake -Bbuild -G "$generator" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local "-DPERL_EXECUTABLE=$perl" |
| 58 | 65 | ||
| 59 | - name: "Build" | 66 | - name: "Build" |
| 60 | shell: cmd | 67 | shell: cmd |
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 45681a1..d009373 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt | |||
| @@ -847,9 +847,16 @@ add_platform_test(ssl_verify_param ssl_verify_param) | |||
| 847 | # ssl_verify | 847 | # ssl_verify |
| 848 | add_executable(ssl_verify ssl_verify.c) | 848 | add_executable(ssl_verify ssl_verify.c) |
| 849 | target_link_libraries(ssl_verify ${OPENSSL_TEST_LIBS}) | 849 | target_link_libraries(ssl_verify ${OPENSSL_TEST_LIBS}) |
| 850 | if(NOT WIN32 AND NOT EMSCRIPTEN AND HAVE_PERL_IO_SOCKET_SSL_UTILS) | 850 | if(NOT EMSCRIPTEN AND HAVE_PERL_IO_SOCKET_SSL_UTILS) |
| 851 | add_test(NAME ssl_verify COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ssl_verify.sh | 851 | if(WIN32) |
| 852 | $<TARGET_FILE:ssl_verify>) | 852 | add_test(NAME ssl_verify COMMAND |
| 853 | ${CMAKE_CURRENT_SOURCE_DIR}/ssl_verify.bat | ||
| 854 | $<TARGET_FILE:ssl_verify>) | ||
| 855 | else() | ||
| 856 | add_test(NAME ssl_verify COMMAND | ||
| 857 | ${CMAKE_CURRENT_SOURCE_DIR}/ssl_verify.sh | ||
| 858 | $<TARGET_FILE:ssl_verify>) | ||
| 859 | endif() | ||
| 853 | set_tests_properties(ssl_verify PROPERTIES | 860 | set_tests_properties(ssl_verify PROPERTIES |
| 854 | ENVIRONMENT "srcdir=${TEST_SOURCE_DIR};PERL=${PERL_EXECUTABLE}" | 861 | ENVIRONMENT "srcdir=${TEST_SOURCE_DIR};PERL=${PERL_EXECUTABLE}" |
| 855 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) | 862 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) |
diff --git a/tests/Makefile.am b/tests/Makefile.am index 7d581c8..9d30359 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am | |||
| @@ -863,6 +863,7 @@ check_PROGRAMS += ssl_verify | |||
| 863 | endif | 863 | endif |
| 864 | ssl_verify_SOURCES = ssl_verify.c | 864 | ssl_verify_SOURCES = ssl_verify.c |
| 865 | EXTRA_DIST += ssl_verify.sh | 865 | EXTRA_DIST += ssl_verify.sh |
| 866 | EXTRA_DIST += ssl_verify.bat | ||
| 866 | EXTRA_DIST += create-libressl-test-certs.pl | 867 | EXTRA_DIST += create-libressl-test-certs.pl |
| 867 | 868 | ||
| 868 | # ssl_versions | 869 | # ssl_versions |
diff --git a/tests/ssl_verify.bat b/tests/ssl_verify.bat new file mode 100644 index 0000000..1b8c1dc --- /dev/null +++ b/tests/ssl_verify.bat | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | @echo off | ||
| 2 | setlocal | ||
| 3 | |||
| 4 | :: Copyright (c) 2026 Kenjiro Nakayama | ||
| 5 | :: | ||
| 6 | :: Permission to use, copy, modify, and distribute this software for any | ||
| 7 | :: purpose with or without fee is hereby granted, provided that the above | ||
| 8 | :: copyright notice and this permission notice appear in all copies. | ||
| 9 | :: | ||
| 10 | :: THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
| 11 | :: WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
| 12 | :: MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
| 13 | :: ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
| 14 | :: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
| 15 | :: ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
| 16 | :: OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
| 17 | |||
| 18 | if "%~1" == "" exit /b 1 | ||
| 19 | |||
| 20 | set "ssl_verify_bin=%~1" | ||
| 21 | set "ssl_verify_bin=%ssl_verify_bin:/=\%" | ||
| 22 | if not exist "%ssl_verify_bin%" exit /b 1 | ||
| 23 | |||
| 24 | if not defined srcdir set "srcdir=." | ||
| 25 | if not defined PERL set "PERL=perl" | ||
| 26 | |||
| 27 | set "workdir=ssl_verify-certs" | ||
| 28 | if exist "%workdir%" rmdir /s /q "%workdir%" | ||
| 29 | mkdir "%workdir%" || exit /b 1 | ||
| 30 | pushd "%workdir%" || exit /b 1 | ||
| 31 | |||
| 32 | set "status=1" | ||
| 33 | "%PERL%" "%srcdir%/create-libressl-test-certs.pl" | ||
| 34 | if errorlevel 1 goto cleanup | ||
| 35 | |||
| 36 | "%ssl_verify_bin%" | ||
| 37 | set "status=%errorlevel%" | ||
| 38 | |||
| 39 | :cleanup | ||
| 40 | popd | ||
| 41 | rmdir /s /q "%workdir%" | ||
| 42 | exit /b %status% | ||
