aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-07-10 22:01:53 +0900
committerKenjiro Nakayama <nakayamakenjiro@gmail.com>2026-07-10 23:22:00 +0900
commitb46676e30dd135dfa886d4ed8098a939b2e5e1de (patch)
tree8cbe125730c103aaabba46c70bb3c0bf07c2a0b1 /tests
parent62858a6ba717bcadbcbf9135ba5873f017162c7d (diff)
downloadportable-b46676e30dd135dfa886d4ed8098a939b2e5e1de.tar.gz
portable-b46676e30dd135dfa886d4ed8098a939b2e5e1de.tar.bz2
portable-b46676e30dd135dfa886d4ed8098a939b2e5e1de.zip
hook up x509/verify regress test
Copy regress/lib/libcrypto/x509/verify.c as x509_verify.c to avoid the basename collision with x509/bettertls/verify.c when regress tests are flattened into tests. Also copy the libcrypto cert test data and make-dir-roots.pl, add a wrapper to prepare the CApath roots directory, and register the test for both autotools and CMake. Refs #1273
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt17
-rw-r--r--tests/Makefile.am16
-rwxr-xr-xtests/x509_verify.sh77
3 files changed, 110 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index f125849..c1f32a4 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -931,6 +931,23 @@ add_executable(valid_handshakes_terminate valid_handshakes_terminate.c)
931target_link_libraries(valid_handshakes_terminate ${OPENSSL_TEST_LIBS}) 931target_link_libraries(valid_handshakes_terminate ${OPENSSL_TEST_LIBS})
932add_platform_test(valid_handshakes_terminate valid_handshakes_terminate) 932add_platform_test(valid_handshakes_terminate valid_handshakes_terminate)
933 933
934# x509_verify
935add_executable(x509_verify x509_verify.c)
936target_link_libraries(x509_verify ${OPENSSL_TEST_LIBS})
937add_dependencies(x509_verify openssl)
938if(NOT WIN32 AND NOT EMSCRIPTEN)
939 add_test(NAME x509_verify COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/x509_verify.sh
940 $<TARGET_FILE:x509_verify> $<TARGET_FILE:openssl>)
941 set_tests_properties(x509_verify PROPERTIES
942 ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}"
943 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
944 # This test depends on certificate times that can exceed 32-bit time_t
945 # range, so match the existing time tests and expect failure there.
946 if(SMALL_TIME_T)
947 set_property(TEST x509_verify PROPERTY WILL_FAIL TRUE)
948 endif()
949endif()
950
934# verifytest 951# verifytest
935add_executable(verifytest verifytest.c) 952add_executable(verifytest verifytest.c)
936target_link_libraries(verifytest ${LIBTLS_TEST_LIBS}) 953target_link_libraries(verifytest ${LIBTLS_TEST_LIBS})
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5cd41c1..6373934 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -102,6 +102,9 @@ check_PROGRAMS =
102EXTRA_DIST = CMakeLists.txt 102EXTRA_DIST = CMakeLists.txt
103DISTCLEANFILES = pidwraptest.txt 103DISTCLEANFILES = pidwraptest.txt
104 104
105distclean-local:
106 rm -rf x509_verify-certs
107
105# XXX - should probably be in their own static lib 108# XXX - should probably be in their own static lib
106TEST_HELPER_SRC = test.c test_util.c 109TEST_HELPER_SRC = test.c test_util.c
107noinst_HEADERS = test.h 110noinst_HEADERS = test.h
@@ -915,6 +918,19 @@ TESTS += valid_handshakes_terminate
915check_PROGRAMS += valid_handshakes_terminate 918check_PROGRAMS += valid_handshakes_terminate
916valid_handshakes_terminate_SOURCES = valid_handshakes_terminate.c 919valid_handshakes_terminate_SOURCES = valid_handshakes_terminate.c
917 920
921# x509_verify
922# This test depends on certificate times that can exceed 32-bit time_t
923# range, so match the existing time tests and expect failure there.
924if SMALL_TIME_T
925XFAIL_TESTS += x509_verify.sh
926endif
927TESTS += x509_verify.sh
928check_PROGRAMS += x509_verify
929x509_verify_SOURCES = x509_verify.c
930EXTRA_DIST += x509_verify.sh
931EXTRA_DIST += make-dir-roots.pl
932EXTRA_DIST += certs
933
918# verifytest 934# verifytest
919TESTS += verifytest 935TESTS += verifytest
920check_PROGRAMS += verifytest 936check_PROGRAMS += verifytest
diff --git a/tests/x509_verify.sh b/tests/x509_verify.sh
new file mode 100755
index 0000000..cc5446c
--- /dev/null
+++ b/tests/x509_verify.sh
@@ -0,0 +1,77 @@
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
23case "$srcdir" in
24/*)
25 certs_path="$srcdir/certs"
26 make_dir_roots="$srcdir/make-dir-roots.pl"
27 openssl_conf="$srcdir/openssl.cnf"
28 ;;
29*)
30 certs_path="`pwd`/$srcdir/certs"
31 make_dir_roots="`pwd`/$srcdir/make-dir-roots.pl"
32 openssl_conf="`pwd`/$srcdir/openssl.cnf"
33 ;;
34esac
35
36if [ $# -ge 1 ]; then
37 verify_bin=$1
38else
39 verify_bin="`pwd`/x509_verify"
40 if [ -e ./x509_verify.exe ]; then
41 verify_bin="`pwd`/x509_verify.exe"
42 fi
43fi
44
45if [ $# -ge 2 ]; then
46 openssl_dir=`dirname "$2"`
47elif [ -d ../apps/openssl ]; then
48 openssl_dir="`pwd`/../apps/openssl"
49else
50 openssl_dir="`pwd`/../apps"
51fi
52
53PATH="$openssl_dir:$PATH"
54export PATH
55
56if [ -f "$openssl_conf" ]; then
57 OPENSSL_CONF="$openssl_conf"
58 export OPENSSL_CONF
59fi
60
61workdir=x509_verify-certs
62
63cleanup()
64{
65 rm -rf "$workdir"
66}
67trap cleanup EXIT
68
69rm -rf "$workdir"
70mkdir "$workdir"
71
72perl "$make_dir_roots" "$certs_path" "$workdir"
73
74(
75 cd "$workdir"
76 "$verify_bin" "$certs_path"
77)