aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-07-19 18:08:07 +0900
committerKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-07-30 07:28:14 +0900
commitdf1ed6bb4ec3e72c20a7082cc168a45ae67704ba (patch)
tree85a6a4a9c041c5be5c28172f62e04d2440576e40 /tests
parent3d686a7cbd84221fde5d7e03fa47896f6abf1d6c (diff)
downloadportable-df1ed6bb4ec3e72c20a7082cc168a45ae67704ba.tar.gz
portable-df1ed6bb4ec3e72c20a7082cc168a45ae67704ba.tar.bz2
portable-df1ed6bb4ec3e72c20a7082cc168a45ae67704ba.zip
add libssl verify test
Copy regress/lib/libssl/verify/verify.c as ssl_verify.c to avoid basename collisions when regress tests are flattened into tests. Copy create-libressl-test-certs.pl and add a wrapper that generates the test certificates before running ssl_verify. Detect the required IO::Socket::SSL::Utils Perl module and register the test with both autotools and CMake when it is available. Also document x509/bettertls is not included.
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt11
-rw-r--r--tests/Makefile.am10
-rwxr-xr-xtests/ssl_verify.sh60
3 files changed, 81 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index ede7463..45681a1 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -844,6 +844,17 @@ add_executable(ssl_verify_param ssl_verify_param.c)
844target_link_libraries(ssl_verify_param ${OPENSSL_TEST_LIBS}) 844target_link_libraries(ssl_verify_param ${OPENSSL_TEST_LIBS})
845add_platform_test(ssl_verify_param ssl_verify_param) 845add_platform_test(ssl_verify_param ssl_verify_param)
846 846
847# ssl_verify
848add_executable(ssl_verify ssl_verify.c)
849target_link_libraries(ssl_verify ${OPENSSL_TEST_LIBS})
850if(NOT WIN32 AND NOT EMSCRIPTEN AND HAVE_PERL_IO_SOCKET_SSL_UTILS)
851 add_test(NAME ssl_verify COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ssl_verify.sh
852 $<TARGET_FILE:ssl_verify>)
853 set_tests_properties(ssl_verify PROPERTIES
854 ENVIRONMENT "srcdir=${TEST_SOURCE_DIR};PERL=${PERL_EXECUTABLE}"
855 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
856endif()
857
847# ssl_versions 858# ssl_versions
848add_executable(ssl_versions ssl_versions.c) 859add_executable(ssl_versions ssl_versions.c)
849target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS}) 860target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS})
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 9b58724..7d581c8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -104,6 +104,7 @@ EXTRA_DIST = CMakeLists.txt
104DISTCLEANFILES = pidwraptest.txt 104DISTCLEANFILES = pidwraptest.txt
105 105
106distclean-local: 106distclean-local:
107 rm -rf ssl_verify-certs
107 rm -rf x509_verify-certs 108 rm -rf x509_verify-certs
108 109
109# XXX - should probably be in their own static lib 110# XXX - should probably be in their own static lib
@@ -855,6 +856,15 @@ TESTS += ssl_verify_param
855check_PROGRAMS += ssl_verify_param 856check_PROGRAMS += ssl_verify_param
856ssl_verify_param_SOURCES = ssl_verify_param.c 857ssl_verify_param_SOURCES = ssl_verify_param.c
857 858
859# ssl_verify
860if HAVE_PERL_IO_SOCKET_SSL_UTILS
861TESTS += ssl_verify.sh
862check_PROGRAMS += ssl_verify
863endif
864ssl_verify_SOURCES = ssl_verify.c
865EXTRA_DIST += ssl_verify.sh
866EXTRA_DIST += create-libressl-test-certs.pl
867
858# ssl_versions 868# ssl_versions
859TESTS += ssl_versions 869TESTS += ssl_versions
860check_PROGRAMS += ssl_versions 870check_PROGRAMS += ssl_versions
diff --git a/tests/ssl_verify.sh b/tests/ssl_verify.sh
new file mode 100755
index 0000000..ed32911
--- /dev/null
+++ b/tests/ssl_verify.sh
@@ -0,0 +1,60 @@
1#!/bin/sh
2#
3# Copyright (c) 2026 Kenjiro Nakayama
4#
5# Permission to use, copy, modify, and distribute this software for any
6# purpose with or without fee is hereby granted, provided that the above
7# copyright notice and this permission notice appear in all copies.
8#
9# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
17set -e
18
19if [ -z "$srcdir" ]; then
20 srcdir=.
21fi
22
23if [ -z "$PERL" ]; then
24 PERL=perl
25fi
26
27case "$srcdir" in
28/*)
29 create_certs="$srcdir/create-libressl-test-certs.pl"
30 ;;
31*)
32 create_certs="`pwd`/$srcdir/create-libressl-test-certs.pl"
33 ;;
34esac
35
36if [ $# -ge 1 ]; then
37 verify_bin=$1
38else
39 verify_bin="`pwd`/ssl_verify"
40 if [ -e ./ssl_verify.exe ]; then
41 verify_bin="`pwd`/ssl_verify.exe"
42 fi
43fi
44
45workdir=ssl_verify-certs
46
47cleanup()
48{
49 rm -rf "$workdir"
50}
51trap cleanup EXIT
52
53rm -rf "$workdir"
54mkdir "$workdir"
55
56(
57 cd "$workdir"
58 "$PERL" "$create_certs"
59 "$verify_bin"
60)