aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-07-30 08:01:17 +0900
committerKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-07-30 08:20:46 +0900
commit0ffff5c1543b3c88640e8b61d52057e96c71da64 (patch)
treee33f437f58a8d0e761f05651045cfd94c726012f
parent686304f1581c4bbc49e8a87408e9e38d4b72445a (diff)
downloadportable-0ffff5c1543b3c88640e8b61d52057e96c71da64.tar.gz
portable-0ffff5c1543b3c88640e8b61d52057e96c71da64.tar.bz2
portable-0ffff5c1543b3c88640e8b61d52057e96c71da64.zip
Run libssl verify test on windows
-rw-r--r--.github/workflows/windows.yml9
-rw-r--r--tests/CMakeLists.txt13
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/ssl_verify.bat42
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
848add_executable(ssl_verify ssl_verify.c) 848add_executable(ssl_verify ssl_verify.c)
849target_link_libraries(ssl_verify ${OPENSSL_TEST_LIBS}) 849target_link_libraries(ssl_verify ${OPENSSL_TEST_LIBS})
850if(NOT WIN32 AND NOT EMSCRIPTEN AND HAVE_PERL_IO_SOCKET_SSL_UTILS) 850if(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
863endif 863endif
864ssl_verify_SOURCES = ssl_verify.c 864ssl_verify_SOURCES = ssl_verify.c
865EXTRA_DIST += ssl_verify.sh 865EXTRA_DIST += ssl_verify.sh
866EXTRA_DIST += ssl_verify.bat
866EXTRA_DIST += create-libressl-test-certs.pl 867EXTRA_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
2setlocal
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
18if "%~1" == "" exit /b 1
19
20set "ssl_verify_bin=%~1"
21set "ssl_verify_bin=%ssl_verify_bin:/=\%"
22if not exist "%ssl_verify_bin%" exit /b 1
23
24if not defined srcdir set "srcdir=."
25if not defined PERL set "PERL=perl"
26
27set "workdir=ssl_verify-certs"
28if exist "%workdir%" rmdir /s /q "%workdir%"
29mkdir "%workdir%" || exit /b 1
30pushd "%workdir%" || exit /b 1
31
32set "status=1"
33"%PERL%" "%srcdir%/create-libressl-test-certs.pl"
34if errorlevel 1 goto cleanup
35
36"%ssl_verify_bin%"
37set "status=%errorlevel%"
38
39:cleanup
40popd
41rmdir /s /q "%workdir%"
42exit /b %status%