aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2021-11-27 20:57:14 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2021-11-27 20:57:14 +0900
commit870a1ebbc20324c3276842c494756e219801a738 (patch)
treedee8c7a02f9289f7120af4361c77a29614cb6b15
parent2ac3d32ec532b9e62efe20f3e7d03245cd2b09c3 (diff)
downloadportable-870a1ebbc20324c3276842c494756e219801a738.tar.gz
portable-870a1ebbc20324c3276842c494756e219801a738.tar.bz2
portable-870a1ebbc20324c3276842c494756e219801a738.zip
Build static library for regression tests when shared build with CMake
-rw-r--r--CMakeLists.txt9
-rw-r--r--crypto/CMakeLists.txt22
-rw-r--r--ssl/CMakeLists.txt13
-rw-r--r--tests/CMakeLists.txt371
-rw-r--r--tls/CMakeLists.txt14
5 files changed, 218 insertions, 211 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ef9070b..bcd17f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -347,6 +347,15 @@ add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T})
347set(OPENSSL_LIBS ssl crypto ${PLATFORM_LIBS}) 347set(OPENSSL_LIBS ssl crypto ${PLATFORM_LIBS})
348set(LIBTLS_LIBS tls ${PLATFORM_LIBS}) 348set(LIBTLS_LIBS tls ${PLATFORM_LIBS})
349 349
350# libraries for regression test
351if(BUILD_SHARED_LIBS)
352 set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS})
353 set(LIBTLS_TEST_LIBS tls-static ${PLATFORM_LIBS})
354else()
355 set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS})
356 set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS})
357endif()
358
350add_subdirectory(crypto) 359add_subdirectory(crypto)
351add_subdirectory(ssl) 360add_subdirectory(ssl)
352if(LIBRESSL_APPS) 361if(LIBRESSL_APPS)
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 5733746..62324a8 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -1028,3 +1028,25 @@ if(ENABLE_LIBRESSL_INSTALL)
1028 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 1028 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
1029 ) 1029 )
1030endif(ENABLE_LIBRESSL_INSTALL) 1030endif(ENABLE_LIBRESSL_INSTALL)
1031
1032# build static library for regression test
1033if(BUILD_SHARED_LIBS)
1034 add_library(crypto-static STATIC $<TARGET_OBJECTS:crypto_obj>)
1035 target_include_directories(crypto-static
1036 PRIVATE
1037 .
1038 asn1
1039 bn
1040 dsa
1041 ec
1042 ecdh
1043 ecdsa
1044 evp
1045 modes
1046 x509
1047 ../include/compat
1048 PUBLIC
1049 ../include)
1050 target_link_libraries(crypto-static ${PLATFORM_LIBS})
1051endif()
1052
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt
index a8e0a25..e4a3d95 100644
--- a/ssl/CMakeLists.txt
+++ b/ssl/CMakeLists.txt
@@ -89,3 +89,16 @@ if(ENABLE_LIBRESSL_INSTALL)
89 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 89 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
90 ) 90 )
91endif(ENABLE_LIBRESSL_INSTALL) 91endif(ENABLE_LIBRESSL_INSTALL)
92
93# build static library for regression test
94if(BUILD_SHARED_LIBS)
95 add_library(ssl-static STATIC $<TARGET_OBJECTS:ssl_obj>)
96 target_include_directories(ssl-static
97 PRIVATE
98 .
99 ../include/compat
100 PUBLIC
101 ../include)
102 target_link_libraries(ssl-static crypto-static ${PLATFORM_LIBS})
103endif()
104
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 2cdd683..ff1ab51 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -15,201 +15,183 @@ file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} TEST_SOURCE_DIR)
15 15
16# aeadtest 16# aeadtest
17add_executable(aeadtest aeadtest.c) 17add_executable(aeadtest aeadtest.c)
18target_link_libraries(aeadtest ${OPENSSL_LIBS}) 18target_link_libraries(aeadtest ${OPENSSL_TEST_LIBS})
19add_test(aeadtest aeadtest ${CMAKE_CURRENT_SOURCE_DIR}/aeadtests.txt) 19add_test(aeadtest aeadtest ${CMAKE_CURRENT_SOURCE_DIR}/aeadtests.txt)
20 20
21# aes_wrap 21# aes_wrap
22add_executable(aes_wrap aes_wrap.c) 22add_executable(aes_wrap aes_wrap.c)
23target_link_libraries(aes_wrap ${OPENSSL_LIBS}) 23target_link_libraries(aes_wrap ${OPENSSL_TEST_LIBS})
24add_test(aes_wrap aes_wrap) 24add_test(aes_wrap aes_wrap)
25 25
26# arc4randomforktest 26# arc4randomforktest
27# Windows/mingw does not have fork, but Cygwin does. 27# Windows/mingw does not have fork, but Cygwin does.
28if(NOT (WIN32 OR (CMAKE_SYSTEM_NAME MATCHES "MINGW"))) 28if(NOT (WIN32 OR (CMAKE_SYSTEM_NAME MATCHES "MINGW")))
29 add_executable(arc4randomforktest arc4randomforktest.c) 29 add_executable(arc4randomforktest arc4randomforktest.c)
30 target_link_libraries(arc4randomforktest ${OPENSSL_LIBS}) 30 target_link_libraries(arc4randomforktest ${OPENSSL_TEST_LIBS})
31 add_test(arc4randomforktest ${CMAKE_CURRENT_SOURCE_DIR}/arc4randomforktest.sh) 31 add_test(arc4randomforktest ${CMAKE_CURRENT_SOURCE_DIR}/arc4randomforktest.sh)
32endif() 32endif()
33 33
34# asn1evp 34# asn1evp
35add_executable(asn1evp asn1evp.c) 35add_executable(asn1evp asn1evp.c)
36target_link_libraries(asn1evp ${OPENSSL_LIBS}) 36target_link_libraries(asn1evp ${OPENSSL_TEST_LIBS})
37add_test(asn1evp asn1evp) 37add_test(asn1evp asn1evp)
38 38
39# asn1test 39# asn1test
40add_executable(asn1test asn1test.c) 40add_executable(asn1test asn1test.c)
41target_link_libraries(asn1test ${OPENSSL_LIBS}) 41target_link_libraries(asn1test ${OPENSSL_TEST_LIBS})
42add_test(asn1test asn1test) 42add_test(asn1test asn1test)
43 43
44# asn1time 44# asn1time
45add_executable(asn1time asn1time.c) 45add_executable(asn1time asn1time.c)
46target_link_libraries(asn1time ${OPENSSL_LIBS}) 46target_link_libraries(asn1time ${OPENSSL_TEST_LIBS})
47add_test(asn1time asn1time) 47add_test(asn1time asn1time)
48 48
49# base64test 49# base64test
50add_executable(base64test base64test.c) 50add_executable(base64test base64test.c)
51target_link_libraries(base64test ${OPENSSL_LIBS}) 51target_link_libraries(base64test ${OPENSSL_TEST_LIBS})
52add_test(base64test base64test) 52add_test(base64test base64test)
53 53
54# bftest 54# bftest
55add_executable(bftest bftest.c) 55add_executable(bftest bftest.c)
56target_link_libraries(bftest ${OPENSSL_LIBS}) 56target_link_libraries(bftest ${OPENSSL_TEST_LIBS})
57add_test(bftest bftest) 57add_test(bftest bftest)
58 58
59# biotest 59# biotest
60# the BIO tests rely on resolver results that are OS and environment-specific 60# the BIO tests rely on resolver results that are OS and environment-specific
61if(ENABLE_EXTRATESTS) 61if(ENABLE_EXTRATESTS)
62 add_executable(biotest biotest.c) 62 add_executable(biotest biotest.c)
63 target_link_libraries(biotest ${OPENSSL_LIBS}) 63 target_link_libraries(biotest ${OPENSSL_TEST_LIBS})
64 add_test(biotest biotest) 64 add_test(biotest biotest)
65endif() 65endif()
66 66
67# bnaddsub 67# bnaddsub
68add_executable(bnaddsub bnaddsub.c) 68add_executable(bnaddsub bnaddsub.c)
69target_link_libraries(bnaddsub ${OPENSSL_LIBS}) 69target_link_libraries(bnaddsub ${OPENSSL_TEST_LIBS})
70add_test(bnaddsub bnaddsub) 70add_test(bnaddsub bnaddsub)
71 71
72# bn_rand_interval 72# bn_rand_interval
73if(NOT BUILD_SHARED_LIBS) 73add_executable(bn_rand_interval bn_rand_interval.c)
74 add_executable(bn_rand_interval bn_rand_interval.c) 74target_link_libraries(bn_rand_interval ${OPENSSL_TEST_LIBS})
75 target_link_libraries(bn_rand_interval ${OPENSSL_LIBS}) 75add_test(bn_rand_interval bn_rand_interval)
76 add_test(bn_rand_interval bn_rand_interval)
77endif()
78 76
79# bntest 77# bntest
80if(NOT BUILD_SHARED_LIBS) 78add_executable(bntest bntest.c)
81 add_executable(bntest bntest.c) 79set_source_files_properties(bntest.c PROPERTIES COMPILE_FLAGS
82 set_source_files_properties(bntest.c PROPERTIES COMPILE_FLAGS 80 -ULIBRESSL_INTERNAL)
83 -ULIBRESSL_INTERNAL) 81target_link_libraries(bntest ${OPENSSL_TEST_LIBS})
84 target_link_libraries(bntest ${OPENSSL_LIBS}) 82add_test(bntest bntest)
85 add_test(bntest bntest)
86endif()
87 83
88# bn_to_string 84# bn_to_string
89if(NOT BUILD_SHARED_LIBS) 85add_executable(bn_to_string bn_to_string.c)
90 add_executable(bn_to_string bn_to_string.c) 86target_link_libraries(bn_to_string ${OPENSSL_TEST_LIBS})
91 target_link_libraries(bn_to_string ${OPENSSL_LIBS}) 87add_test(bn_to_string bn_to_string)
92 add_test(bn_to_string bn_to_string)
93endif()
94 88
95# buffertest 89# buffertest
96if(NOT BUILD_SHARED_LIBS) 90add_executable(buffertest buffertest.c)
97 add_executable(buffertest buffertest.c) 91target_link_libraries(buffertest ${OPENSSL_TEST_LIBS})
98 target_link_libraries(buffertest ${OPENSSL_LIBS}) 92add_test(buffertest buffertest)
99 add_test(buffertest buffertest)
100endif()
101 93
102# bytestringtest 94# bytestringtest
103if(NOT BUILD_SHARED_LIBS) 95add_executable(bytestringtest bytestringtest.c)
104 add_executable(bytestringtest bytestringtest.c) 96target_link_libraries(bytestringtest ${OPENSSL_TEST_LIBS})
105 target_link_libraries(bytestringtest ${OPENSSL_LIBS}) 97add_test(bytestringtest bytestringtest)
106 add_test(bytestringtest bytestringtest)
107endif()
108 98
109# casttest 99# casttest
110add_executable(casttest casttest.c) 100add_executable(casttest casttest.c)
111target_link_libraries(casttest ${OPENSSL_LIBS}) 101target_link_libraries(casttest ${OPENSSL_TEST_LIBS})
112add_test(casttest casttest) 102add_test(casttest casttest)
113 103
114# chachatest 104# chachatest
115add_executable(chachatest chachatest.c) 105add_executable(chachatest chachatest.c)
116target_link_libraries(chachatest ${OPENSSL_LIBS}) 106target_link_libraries(chachatest ${OPENSSL_TEST_LIBS})
117add_test(chachatest chachatest) 107add_test(chachatest chachatest)
118 108
119# cipher_list 109# cipher_list
120if(NOT BUILD_SHARED_LIBS) 110add_executable(cipher_list cipher_list.c)
121 add_executable(cipher_list cipher_list.c) 111target_link_libraries(cipher_list ${OPENSSL_TEST_LIBS})
122 target_link_libraries(cipher_list ${OPENSSL_LIBS}) 112add_test(cipher_list cipher_list)
123 add_test(cipher_list cipher_list)
124endif()
125 113
126if(NOT BUILD_SHARED_LIBS) 114# cipherstest
127 # cipherstest 115add_executable(cipherstest cipherstest.c)
128 add_executable(cipherstest cipherstest.c) 116target_link_libraries(cipherstest ${OPENSSL_TEST_LIBS})
129 target_link_libraries(cipherstest ${OPENSSL_LIBS}) 117add_test(cipherstest cipherstest)
130 add_test(cipherstest cipherstest)
131endif()
132 118
133# clienttest 119# clienttest
134add_executable(clienttest clienttest.c) 120add_executable(clienttest clienttest.c)
135target_link_libraries(clienttest ${OPENSSL_LIBS}) 121target_link_libraries(clienttest ${OPENSSL_TEST_LIBS})
136add_test(clienttest clienttest) 122add_test(clienttest clienttest)
137 123
138# cmstest 124# cmstest
139add_executable(cmstest cmstest.c) 125add_executable(cmstest cmstest.c)
140target_link_libraries(cmstest ${OPENSSL_LIBS}) 126target_link_libraries(cmstest ${OPENSSL_TEST_LIBS})
141add_test(cmstest cmstest) 127add_test(cmstest cmstest)
142 128
143# configtest 129# configtest
144add_executable(configtest configtest.c) 130add_executable(configtest configtest.c)
145target_link_libraries(configtest ${LIBTLS_LIBS}) 131target_link_libraries(configtest ${LIBTLS_TEST_LIBS})
146add_test(configtest configtest) 132add_test(configtest configtest)
147 133
148# constraints 134# constraints
149if(NOT BUILD_SHARED_LIBS) 135add_executable(constraints constraints.c)
150 add_executable(constraints constraints.c) 136target_link_libraries(constraints ${OPENSSL_TEST_LIBS})
151 target_link_libraries(constraints ${OPENSSL_LIBS}) 137add_test(constraints constraints)
152 add_test(constraints constraints)
153endif()
154 138
155# cts128test 139# cts128test
156add_executable(cts128test cts128test.c) 140add_executable(cts128test cts128test.c)
157target_link_libraries(cts128test ${OPENSSL_LIBS}) 141target_link_libraries(cts128test ${OPENSSL_TEST_LIBS})
158add_test(cts128test cts128test) 142add_test(cts128test cts128test)
159 143
160# destest 144# destest
161add_executable(destest destest.c) 145add_executable(destest destest.c)
162target_link_libraries(destest ${OPENSSL_LIBS}) 146target_link_libraries(destest ${OPENSSL_TEST_LIBS})
163add_test(destest destest) 147add_test(destest destest)
164 148
165# dhtest 149# dhtest
166add_executable(dhtest dhtest.c) 150add_executable(dhtest dhtest.c)
167target_link_libraries(dhtest ${OPENSSL_LIBS}) 151target_link_libraries(dhtest ${OPENSSL_TEST_LIBS})
168add_test(dhtest dhtest) 152add_test(dhtest dhtest)
169 153
170# dsatest 154# dsatest
171add_executable(dsatest dsatest.c) 155add_executable(dsatest dsatest.c)
172target_link_libraries(dsatest ${OPENSSL_LIBS}) 156target_link_libraries(dsatest ${OPENSSL_TEST_LIBS})
173add_test(dsatest dsatest) 157add_test(dsatest dsatest)
174 158
175# dtlstest 159# dtlstest
176if(NOT BUILD_SHARED_LIBS AND NOT WIN32) 160if(NOT WIN32)
177 add_executable(dtlstest dtlstest.c) 161 add_executable(dtlstest dtlstest.c)
178 target_link_libraries(dtlstest ${OPENSSL_LIBS}) 162 target_link_libraries(dtlstest ${OPENSSL_TEST_LIBS})
179 add_test(NAME dtlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/dtlstest.sh) 163 add_test(NAME dtlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/dtlstest.sh)
180 set_tests_properties(dtlstest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}") 164 set_tests_properties(dtlstest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
181endif() 165endif()
182 166
183if(NOT BUILD_SHARED_LIBS)
184# ec_point_conversion 167# ec_point_conversion
185add_executable(ec_point_conversion ec_point_conversion.c) 168add_executable(ec_point_conversion ec_point_conversion.c)
186target_link_libraries(ec_point_conversion ${OPENSSL_LIBS}) 169target_link_libraries(ec_point_conversion ${OPENSSL_TEST_LIBS})
187add_test(ec_point_conversion ec_point_conversion) 170add_test(ec_point_conversion ec_point_conversion)
188 171
189# ecdhtest 172# ecdhtest
190add_executable(ecdhtest ecdhtest.c) 173add_executable(ecdhtest ecdhtest.c)
191target_link_libraries(ecdhtest ${OPENSSL_LIBS}) 174target_link_libraries(ecdhtest ${OPENSSL_TEST_LIBS})
192add_test(ecdhtest ecdhtest) 175add_test(ecdhtest ecdhtest)
193 176
194# ecdsatest 177# ecdsatest
195add_executable(ecdsatest ecdsatest.c) 178add_executable(ecdsatest ecdsatest.c)
196target_link_libraries(ecdsatest ${OPENSSL_LIBS}) 179target_link_libraries(ecdsatest ${OPENSSL_TEST_LIBS})
197add_test(ecdsatest ecdsatest) 180add_test(ecdsatest ecdsatest)
198 181
199# ectest 182# ectest
200add_executable(ectest ectest.c) 183add_executable(ectest ectest.c)
201target_link_libraries(ectest ${OPENSSL_LIBS}) 184target_link_libraries(ectest ${OPENSSL_TEST_LIBS})
202add_test(ectest ectest) 185add_test(ectest ectest)
203endif()
204 186
205# enginetest 187# enginetest
206add_executable(enginetest enginetest.c) 188add_executable(enginetest enginetest.c)
207target_link_libraries(enginetest ${OPENSSL_LIBS}) 189target_link_libraries(enginetest ${OPENSSL_TEST_LIBS})
208add_test(enginetest enginetest) 190add_test(enginetest enginetest)
209 191
210# evptest 192# evptest
211add_executable(evptest evptest.c) 193add_executable(evptest evptest.c)
212target_link_libraries(evptest ${OPENSSL_LIBS}) 194target_link_libraries(evptest ${OPENSSL_TEST_LIBS})
213add_test(evptest evptest ${CMAKE_CURRENT_SOURCE_DIR}/evptests.txt) 195add_test(evptest evptest ${CMAKE_CURRENT_SOURCE_DIR}/evptests.txt)
214 196
215# explicit_bzero 197# explicit_bzero
@@ -220,95 +202,89 @@ if(NOT WIN32)
220 else() 202 else()
221 add_executable(explicit_bzero explicit_bzero.c compat/memmem.c) 203 add_executable(explicit_bzero explicit_bzero.c compat/memmem.c)
222 endif() 204 endif()
223 target_link_libraries(explicit_bzero ${OPENSSL_LIBS}) 205 target_link_libraries(explicit_bzero ${OPENSSL_TEST_LIBS})
224 add_test(explicit_bzero explicit_bzero) 206 add_test(explicit_bzero explicit_bzero)
225endif() 207endif()
226 208
227# exptest 209# exptest
228if(NOT BUILD_SHARED_LIBS) 210add_executable(exptest exptest.c)
229 add_executable(exptest exptest.c) 211set_source_files_properties(exptest.c PROPERTIES COMPILE_FLAGS
230 set_source_files_properties(exptest.c PROPERTIES COMPILE_FLAGS 212 -ULIBRESSL_INTERNAL)
231 -ULIBRESSL_INTERNAL) 213target_link_libraries(exptest ${OPENSSL_TEST_LIBS})
232 target_link_libraries(exptest ${OPENSSL_LIBS}) 214add_test(exptest exptest)
233 add_test(exptest exptest)
234endif()
235 215
236# freenull 216# freenull
237add_executable(freenull freenull.c) 217add_executable(freenull freenull.c)
238target_link_libraries(freenull ${OPENSSL_LIBS}) 218target_link_libraries(freenull ${OPENSSL_TEST_LIBS})
239add_test(freenull freenull) 219add_test(freenull freenull)
240 220
241# gcm128test 221# gcm128test
242add_executable(gcm128test gcm128test.c) 222add_executable(gcm128test gcm128test.c)
243target_link_libraries(gcm128test ${OPENSSL_LIBS}) 223target_link_libraries(gcm128test ${OPENSSL_TEST_LIBS})
244add_test(gcm128test gcm128test) 224add_test(gcm128test gcm128test)
245 225
246# gost2814789t 226# gost2814789t
247add_executable(gost2814789t gost2814789t.c) 227add_executable(gost2814789t gost2814789t.c)
248target_link_libraries(gost2814789t ${OPENSSL_LIBS}) 228target_link_libraries(gost2814789t ${OPENSSL_TEST_LIBS})
249add_test(gost2814789t gost2814789t) 229add_test(gost2814789t gost2814789t)
250 230
251# handshake_table 231# handshake_table
252if(NOT BUILD_SHARED_LIBS) 232add_executable(handshake_table handshake_table.c)
253 add_executable(handshake_table handshake_table.c) 233target_link_libraries(handshake_table ${OPENSSL_TEST_LIBS})
254 target_link_libraries(handshake_table ${OPENSSL_LIBS}) 234add_test(handshake_table handshake_table)
255 add_test(handshake_table handshake_table)
256endif()
257 235
258# hkdf_test 236# hkdf_test
259add_executable(hkdf_test hkdf_test.c) 237add_executable(hkdf_test hkdf_test.c)
260target_link_libraries(hkdf_test ${OPENSSL_LIBS}) 238target_link_libraries(hkdf_test ${OPENSSL_TEST_LIBS})
261add_test(hkdf_test hkdf_test) 239add_test(hkdf_test hkdf_test)
262 240
263# hmactest 241# hmactest
264add_executable(hmactest hmactest.c) 242add_executable(hmactest hmactest.c)
265target_link_libraries(hmactest ${OPENSSL_LIBS}) 243target_link_libraries(hmactest ${OPENSSL_TEST_LIBS})
266add_test(hmactest hmactest) 244add_test(hmactest hmactest)
267 245
268# ideatest 246# ideatest
269add_executable(ideatest ideatest.c) 247add_executable(ideatest ideatest.c)
270target_link_libraries(ideatest ${OPENSSL_LIBS}) 248target_link_libraries(ideatest ${OPENSSL_TEST_LIBS})
271add_test(ideatest ideatest) 249add_test(ideatest ideatest)
272 250
273# igetest 251# igetest
274add_executable(igetest igetest.c) 252add_executable(igetest igetest.c)
275target_link_libraries(igetest ${OPENSSL_LIBS}) 253target_link_libraries(igetest ${OPENSSL_TEST_LIBS})
276add_test(igetest igetest) 254add_test(igetest igetest)
277 255
278# keypairtest 256# keypairtest
279if(NOT BUILD_SHARED_LIBS) 257add_executable(key_schedule key_schedule.c)
280 add_executable(key_schedule key_schedule.c) 258target_link_libraries(key_schedule ${OPENSSL_TEST_LIBS})
281 target_link_libraries(key_schedule ${OPENSSL_LIBS}) 259add_test(key_schedule key_schedule)
282 add_test(key_schedule key_schedule) 260
283 261add_executable(keypairtest keypairtest.c)
284 add_executable(keypairtest keypairtest.c) 262target_link_libraries(keypairtest ${LIBTLS_TEST_LIBS})
285 target_link_libraries(keypairtest ${LIBTLS_LIBS}) 263target_include_directories(keypairtest BEFORE PUBLIC ../tls)
286 target_include_directories(keypairtest BEFORE PUBLIC ../tls) 264add_test(keypairtest keypairtest
287 add_test(keypairtest keypairtest 265 ${CMAKE_CURRENT_SOURCE_DIR}/ca.pem
288 ${CMAKE_CURRENT_SOURCE_DIR}/ca.pem 266 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem
289 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem 267 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem)
290 ${CMAKE_CURRENT_SOURCE_DIR}/server.pem)
291endif()
292 268
293# md4test 269# md4test
294add_executable(md4test md4test.c) 270add_executable(md4test md4test.c)
295target_link_libraries(md4test ${OPENSSL_LIBS}) 271target_link_libraries(md4test ${OPENSSL_TEST_LIBS})
296add_test(md4test md4test) 272add_test(md4test md4test)
297 273
298# md5test 274# md5test
299add_executable(md5test md5test.c) 275add_executable(md5test md5test.c)
300target_link_libraries(md5test ${OPENSSL_LIBS}) 276target_link_libraries(md5test ${OPENSSL_TEST_LIBS})
301add_test(md5test md5test) 277add_test(md5test md5test)
302 278
303# mont 279# mont
304add_executable(mont mont.c) 280add_executable(mont mont.c)
305target_link_libraries(mont ${OPENSSL_LIBS}) 281target_link_libraries(mont ${OPENSSL_TEST_LIBS})
306add_test(mont mont) 282add_test(mont mont)
307 283
308# ocsp_test 284# ocsp_test
309if(ENABLE_EXTRATESTS) 285if(ENABLE_EXTRATESTS)
310 add_executable(ocsp_test ocsp_test.c) 286 add_executable(ocsp_test ocsp_test.c)
311 target_link_libraries(ocsp_test ${OPENSSL_LIBS}) 287 target_link_libraries(ocsp_test ${OPENSSL_TEST_LIBS})
312 if(NOT MSVC) 288 if(NOT MSVC)
313 add_test(NAME ocsptest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ocsptest.sh) 289 add_test(NAME ocsptest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ocsptest.sh)
314 else() 290 else()
@@ -318,12 +294,12 @@ endif()
318 294
319# optionstest 295# optionstest
320add_executable(optionstest optionstest.c) 296add_executable(optionstest optionstest.c)
321target_link_libraries(optionstest ${OPENSSL_LIBS}) 297target_link_libraries(optionstest ${OPENSSL_TEST_LIBS})
322add_test(optionstest optionstest) 298add_test(optionstest optionstest)
323 299
324# pbkdf2 300# pbkdf2
325add_executable(pbkdf2 pbkdf2.c) 301add_executable(pbkdf2 pbkdf2.c)
326target_link_libraries(pbkdf2 ${OPENSSL_LIBS}) 302target_link_libraries(pbkdf2 ${OPENSSL_TEST_LIBS})
327add_test(pbkdf2 pbkdf2) 303add_test(pbkdf2 pbkdf2)
328 304
329# pidwraptest 305# pidwraptest
@@ -331,68 +307,59 @@ add_test(pbkdf2 pbkdf2)
331# awkward on systems with slow fork 307# awkward on systems with slow fork
332if(ENABLE_EXTRATESTS AND NOT MSVC) 308if(ENABLE_EXTRATESTS AND NOT MSVC)
333 add_executable(pidwraptest pidwraptest.c) 309 add_executable(pidwraptest pidwraptest.c)
334 target_link_libraries(pidwraptest ${OPENSSL_LIBS}) 310 target_link_libraries(pidwraptest ${OPENSSL_TEST_LIBS})
335 add_test(pidwraptest ${CMAKE_CURRENT_SOURCE_DIR}/pidwraptest.sh) 311 add_test(pidwraptest ${CMAKE_CURRENT_SOURCE_DIR}/pidwraptest.sh)
336endif() 312endif()
337 313
338# pkcs7test 314# pkcs7test
339add_executable(pkcs7test pkcs7test.c) 315add_executable(pkcs7test pkcs7test.c)
340target_link_libraries(pkcs7test ${OPENSSL_LIBS}) 316target_link_libraries(pkcs7test ${OPENSSL_TEST_LIBS})
341add_test(pkcs7test pkcs7test) 317add_test(pkcs7test pkcs7test)
342 318
343# poly1305test 319# poly1305test
344add_executable(poly1305test poly1305test.c) 320add_executable(poly1305test poly1305test.c)
345target_link_libraries(poly1305test ${OPENSSL_LIBS}) 321target_link_libraries(poly1305test ${OPENSSL_TEST_LIBS})
346add_test(poly1305test poly1305test) 322add_test(poly1305test poly1305test)
347 323
348# pq_test 324# pq_test
349if(NOT BUILD_SHARED_LIBS) 325add_executable(pq_test pq_test.c)
350 add_executable(pq_test pq_test.c) 326target_link_libraries(pq_test ${OPENSSL_TEST_LIBS})
351 target_link_libraries(pq_test ${OPENSSL_LIBS}) 327if(NOT MSVC)
352 if(NOT MSVC) 328 add_test(NAME pq_test COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.sh)
353 add_test(NAME pq_test COMMAND 329else()
354 ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.sh) 330 add_test(NAME pq_test COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.bat
355 else() 331 $<TARGET_FILE:pq_test>)
356 add_test(NAME pq_test COMMAND
357 ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.bat
358 $<TARGET_FILE:pq_test>)
359 endif()
360 set_tests_properties(pq_test PROPERTIES ENVIRONMENT
361 "srcdir=${TEST_SOURCE_DIR}")
362endif() 332endif()
333set_tests_properties(pq_test PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
363 334
364# randtest 335# randtest
365add_executable(randtest randtest.c) 336add_executable(randtest randtest.c)
366target_link_libraries(randtest ${OPENSSL_LIBS}) 337target_link_libraries(randtest ${OPENSSL_TEST_LIBS})
367add_test(randtest randtest) 338add_test(randtest randtest)
368 339
369# rc2test 340# rc2test
370add_executable(rc2test rc2test.c) 341add_executable(rc2test rc2test.c)
371target_link_libraries(rc2test ${OPENSSL_LIBS}) 342target_link_libraries(rc2test ${OPENSSL_TEST_LIBS})
372add_test(rc2test rc2test) 343add_test(rc2test rc2test)
373 344
374# rc4test 345# rc4test
375add_executable(rc4test rc4test.c) 346add_executable(rc4test rc4test.c)
376target_link_libraries(rc4test ${OPENSSL_LIBS}) 347target_link_libraries(rc4test ${OPENSSL_TEST_LIBS})
377add_test(rc4test rc4test) 348add_test(rc4test rc4test)
378 349
379# recordtest 350# recordtest
380if(NOT BUILD_SHARED_LIBS) 351add_executable(recordtest recordtest.c)
381 add_executable(recordtest recordtest.c) 352target_link_libraries(recordtest ${OPENSSL_TEST_LIBS})
382 target_link_libraries(recordtest ${OPENSSL_LIBS}) 353add_test(recordtest recordtest)
383 add_test(recordtest recordtest)
384endif()
385 354
386# record_layer_test 355# record_layer_test
387if(NOT BUILD_SHARED_LIBS) 356add_executable(record_layer_test record_layer_test.c)
388 add_executable(record_layer_test record_layer_test.c) 357target_link_libraries(record_layer_test ${OPENSSL_TEST_LIBS})
389 target_link_libraries(record_layer_test ${OPENSSL_LIBS}) 358add_test(record_layer_test record_layer_test)
390 add_test(record_layer_test record_layer_test)
391endif()
392 359
393# rfc5280time 360# rfc5280time
394add_executable(rfc5280time rfc5280time.c) 361add_executable(rfc5280time rfc5280time.c)
395target_link_libraries(rfc5280time ${OPENSSL_LIBS}) 362target_link_libraries(rfc5280time ${OPENSSL_TEST_LIBS})
396if(SMALL_TIME_T) 363if(SMALL_TIME_T)
397 add_test(rfc5280time ${CMAKE_CURRENT_SOURCE_DIR}/rfc5280time_small.test) 364 add_test(rfc5280time ${CMAKE_CURRENT_SOURCE_DIR}/rfc5280time_small.test)
398else() 365else()
@@ -401,68 +368,64 @@ endif()
401 368
402# rmdtest 369# rmdtest
403add_executable(rmdtest rmdtest.c) 370add_executable(rmdtest rmdtest.c)
404target_link_libraries(rmdtest ${OPENSSL_LIBS}) 371target_link_libraries(rmdtest ${OPENSSL_TEST_LIBS})
405add_test(rmdtest rmdtest) 372add_test(rmdtest rmdtest)
406 373
407# rsa_test 374# rsa_test
408add_executable(rsa_test rsa_test.c) 375add_executable(rsa_test rsa_test.c)
409target_link_libraries(rsa_test ${OPENSSL_LIBS}) 376target_link_libraries(rsa_test ${OPENSSL_TEST_LIBS})
410add_test(rsa_test rsa_test) 377add_test(rsa_test rsa_test)
411 378
412# servertest 379# servertest
413if(NOT BUILD_SHARED_LIBS) 380add_executable(servertest servertest.c)
414 add_executable(servertest servertest.c) 381target_link_libraries(servertest ${OPENSSL_TEST_LIBS})
415 target_link_libraries(servertest ${OPENSSL_LIBS}) 382if(NOT MSVC)
416 if(NOT MSVC) 383 add_test(NAME servertest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/servertest.sh)
417 add_test(NAME servertest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/servertest.sh) 384else()
418 else() 385 add_test(NAME servertest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/servertest.bat $<TARGET_FILE:servertest>)
419 add_test(NAME servertest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/servertest.bat $<TARGET_FILE:servertest>)
420 endif()
421 set_tests_properties(servertest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
422endif() 386endif()
387set_tests_properties(servertest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
423 388
424# sha1test 389# sha1test
425add_executable(sha1test sha1test.c) 390add_executable(sha1test sha1test.c)
426target_link_libraries(sha1test ${OPENSSL_LIBS}) 391target_link_libraries(sha1test ${OPENSSL_TEST_LIBS})
427add_test(sha1test sha1test) 392add_test(sha1test sha1test)
428 393
429# sha256test 394# sha256test
430add_executable(sha256test sha256test.c) 395add_executable(sha256test sha256test.c)
431target_link_libraries(sha256test ${OPENSSL_LIBS}) 396target_link_libraries(sha256test ${OPENSSL_TEST_LIBS})
432add_test(sha256test sha256test) 397add_test(sha256test sha256test)
433 398
434# sha512test 399# sha512test
435add_executable(sha512test sha512test.c) 400add_executable(sha512test sha512test.c)
436target_link_libraries(sha512test ${OPENSSL_LIBS}) 401target_link_libraries(sha512test ${OPENSSL_TEST_LIBS})
437add_test(sha512test sha512test) 402add_test(sha512test sha512test)
438 403
439# sm3test 404# sm3test
440add_executable(sm3test sm3test.c) 405add_executable(sm3test sm3test.c)
441target_link_libraries(sm3test ${OPENSSL_LIBS}) 406target_link_libraries(sm3test ${OPENSSL_TEST_LIBS})
442add_test(sm3test sm3test) 407add_test(sm3test sm3test)
443 408
444# sm4test 409# sm4test
445add_executable(sm4test sm4test.c) 410add_executable(sm4test sm4test.c)
446target_link_libraries(sm4test ${OPENSSL_LIBS}) 411target_link_libraries(sm4test ${OPENSSL_TEST_LIBS})
447add_test(sm4test sm4test) 412add_test(sm4test sm4test)
448 413
449# ssl_get_shared_ciphers 414# ssl_get_shared_ciphers
450add_executable(ssl_get_shared_ciphers ssl_get_shared_ciphers.c) 415add_executable(ssl_get_shared_ciphers ssl_get_shared_ciphers.c)
451set_source_files_properties(ssl_get_shared_ciphers.c PROPERTIES COMPILE_FLAGS 416set_source_files_properties(ssl_get_shared_ciphers.c PROPERTIES COMPILE_FLAGS
452 -DCERTSDIR=\\"${CMAKE_CURRENT_SOURCE_DIR}\\") 417 -DCERTSDIR=\\"${CMAKE_CURRENT_SOURCE_DIR}\\")
453target_link_libraries(ssl_get_shared_ciphers ${OPENSSL_LIBS}) 418target_link_libraries(ssl_get_shared_ciphers ${OPENSSL_TEST_LIBS})
454add_test(ssl_get_shared_ciphers ssl_get_shared_ciphers) 419add_test(ssl_get_shared_ciphers ssl_get_shared_ciphers)
455 420
456# ssl_versions 421# ssl_versions
457if(NOT BUILD_SHARED_LIBS) 422add_executable(ssl_versions ssl_versions.c)
458 add_executable(ssl_versions ssl_versions.c) 423target_link_libraries(ssl_versions ${OPENSSL_TEST_LIBS})
459 target_link_libraries(ssl_versions ${OPENSSL_LIBS}) 424add_test(ssl_versions ssl_versions)
460 add_test(ssl_versions ssl_versions)
461endif()
462 425
463# ssltest 426# ssltest
464add_executable(ssltest ssltest.c) 427add_executable(ssltest ssltest.c)
465target_link_libraries(ssltest ${OPENSSL_LIBS}) 428target_link_libraries(ssltest ${OPENSSL_TEST_LIBS})
466if(NOT MSVC) 429if(NOT MSVC)
467 add_test(NAME ssltest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ssltest.sh) 430 add_test(NAME ssltest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ssltest.sh)
468else() 431else()
@@ -496,19 +459,17 @@ set_tests_properties(testrsa PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")
496 459
497# timingsafe 460# timingsafe
498add_executable(timingsafe timingsafe.c) 461add_executable(timingsafe timingsafe.c)
499target_link_libraries(timingsafe ${OPENSSL_LIBS}) 462target_link_libraries(timingsafe ${OPENSSL_TEST_LIBS})
500add_test(timingsafe timingsafe) 463add_test(timingsafe timingsafe)
501 464
502# tlsexttest 465# tlsexttest
503if(NOT BUILD_SHARED_LIBS) 466add_executable(tlsexttest tlsexttest.c)
504 add_executable(tlsexttest tlsexttest.c) 467target_link_libraries(tlsexttest ${OPENSSL_TEST_LIBS})
505 target_link_libraries(tlsexttest ${OPENSSL_LIBS}) 468add_test(tlsexttest tlsexttest)
506 add_test(tlsexttest tlsexttest)
507endif()
508 469
509# tlslegacytest 470# tlslegacytest
510add_executable(tlslegacytest tlslegacytest.c) 471add_executable(tlslegacytest tlslegacytest.c)
511target_link_libraries(tlslegacytest ${OPENSSL_LIBS}) 472target_link_libraries(tlslegacytest ${OPENSSL_TEST_LIBS})
512add_test(tlslegacytest tlslegacytest) 473add_test(tlslegacytest tlslegacytest)
513 474
514# tlstest 475# tlstest
@@ -522,7 +483,7 @@ if(NOT CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
522 endif() 483 endif()
523 484
524 add_executable(tlstest ${TLSTEST_SRC}) 485 add_executable(tlstest ${TLSTEST_SRC})
525 target_link_libraries(tlstest ${LIBTLS_LIBS}) 486 target_link_libraries(tlstest ${LIBTLS_TEST_LIBS})
526 if(NOT MSVC) 487 if(NOT MSVC)
527 add_test(NAME tlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.sh) 488 add_test(NAME tlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.sh)
528 else() 489 else()
@@ -532,71 +493,59 @@ if(NOT CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
532endif() 493endif()
533 494
534# tls_ext_alpn 495# tls_ext_alpn
535if(NOT BUILD_SHARED_LIBS) 496add_executable(tls_ext_alpn tls_ext_alpn.c)
536 add_executable(tls_ext_alpn tls_ext_alpn.c) 497target_link_libraries(tls_ext_alpn ${OPENSSL_TEST_LIBS})
537 target_link_libraries(tls_ext_alpn ${OPENSSL_LIBS}) 498add_test(tls_ext_alpn tls_ext_alpn)
538 add_test(tls_ext_alpn tls_ext_alpn)
539endif()
540 499
541# tls_prf 500# tls_prf
542if(NOT BUILD_SHARED_LIBS) 501add_executable(tls_prf tls_prf.c)
543 add_executable(tls_prf tls_prf.c) 502target_link_libraries(tls_prf ${OPENSSL_TEST_LIBS})
544 target_link_libraries(tls_prf ${OPENSSL_LIBS}) 503add_test(tls_prf tls_prf)
545 add_test(tls_prf tls_prf)
546endif()
547 504
548# utf8test 505# utf8test
549if(NOT BUILD_SHARED_LIBS) 506add_executable(utf8test utf8test.c)
550 add_executable(utf8test utf8test.c) 507target_link_libraries(utf8test ${OPENSSL_TEST_LIBS})
551 target_link_libraries(utf8test ${OPENSSL_LIBS}) 508add_test(utf8test utf8test)
552 add_test(utf8test utf8test)
553endif()
554 509
555# valid_handshakes_terminate 510# valid_handshakes_terminate
556if(NOT BUILD_SHARED_LIBS) 511add_executable(valid_handshakes_terminate valid_handshakes_terminate.c)
557 add_executable(valid_handshakes_terminate valid_handshakes_terminate.c) 512target_link_libraries(valid_handshakes_terminate ${OPENSSL_TEST_LIBS})
558 target_link_libraries(valid_handshakes_terminate ${OPENSSL_LIBS}) 513add_test(valid_handshakes_terminate valid_handshakes_terminate)
559 add_test(valid_handshakes_terminate valid_handshakes_terminate)
560endif()
561 514
562# verifytest 515# verifytest
563if(NOT BUILD_SHARED_LIBS) 516add_executable(verifytest verifytest.c)
564 add_executable(verifytest verifytest.c) 517target_link_libraries(verifytest ${LIBTLS_TEST_LIBS})
565 target_link_libraries(verifytest ${LIBTLS_LIBS}) 518add_test(verifytest verifytest)
566 add_test(verifytest verifytest)
567endif()
568 519
569# x25519test 520# x25519test
570add_executable(x25519test x25519test.c) 521add_executable(x25519test x25519test.c)
571target_link_libraries(x25519test ${OPENSSL_LIBS}) 522target_link_libraries(x25519test ${OPENSSL_TEST_LIBS})
572add_test(x25519test x25519test) 523add_test(x25519test x25519test)
573 524
574# x509attribute 525# x509attribute
575add_executable(x509attribute x509attribute.c) 526add_executable(x509attribute x509attribute.c)
576target_link_libraries(x509attribute ${OPENSSL_LIBS}) 527target_link_libraries(x509attribute ${OPENSSL_TEST_LIBS})
577add_test(x509attribute x509attribute) 528add_test(x509attribute x509attribute)
578 529
579# x509_info 530# x509_info
580add_executable(x509_info x509_info.c) 531add_executable(x509_info x509_info.c)
581target_link_libraries(x509_info ${OPENSSL_LIBS}) 532target_link_libraries(x509_info ${OPENSSL_TEST_LIBS})
582add_test(x509_info x509_info) 533add_test(x509_info x509_info)
583 534
584# x509name 535# x509name
585add_executable(x509name x509name.c) 536add_executable(x509name x509name.c)
586target_link_libraries(x509name ${OPENSSL_LIBS}) 537target_link_libraries(x509name ${OPENSSL_TEST_LIBS})
587add_test(x509name x509name) 538add_test(x509name x509name)
588 539
589# x509req_ext 540# x509req_ext
590add_executable(x509req_ext x509req_ext.c) 541add_executable(x509req_ext x509req_ext.c)
591target_link_libraries(x509req_ext ${OPENSSL_LIBS}) 542target_link_libraries(x509req_ext ${OPENSSL_TEST_LIBS})
592add_test(x509req_ext x509req_ext) 543add_test(x509req_ext x509req_ext)
593 544
594if(BUILD_SHARED_LIBS) 545add_custom_command(TARGET x25519test POST_BUILD
595 add_custom_command(TARGET x25519test POST_BUILD 546 COMMAND "${CMAKE_COMMAND}" -E copy
596 COMMAND "${CMAKE_COMMAND}" -E copy 547 "$<TARGET_FILE:tls>"
597 "$<TARGET_FILE:tls>" 548 "$<TARGET_FILE:ssl>"
598 "$<TARGET_FILE:ssl>" 549 "$<TARGET_FILE:crypto>"
599 "$<TARGET_FILE:crypto>" 550 "${CMAKE_CURRENT_BINARY_DIR}"
600 "${CMAKE_CURRENT_BINARY_DIR}" 551 COMMENT "Copying DLLs for regression tests")
601 COMMENT "Copying DLLs for regression tests")
602endif()
diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt
index 9aa10e1..17aedf0 100644
--- a/tls/CMakeLists.txt
+++ b/tls/CMakeLists.txt
@@ -74,3 +74,17 @@ if(ENABLE_LIBRESSL_INSTALL)
74 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} 74 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
75 ) 75 )
76endif(ENABLE_LIBRESSL_INSTALL) 76endif(ENABLE_LIBRESSL_INSTALL)
77
78# build static library for regression test
79if(BUILD_SHARED_LIBS)
80 add_library(tls-static STATIC $<TARGET_OBJECTS:tls_obj>
81 $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:crypto_obj>)
82 target_include_directories(tls-static
83 PRIVATE
84 .
85 ../include/compat
86 PUBLIC
87 ../include)
88 target_link_libraries(tls-static ${PLATFORM_LIBS})
89endif()
90