aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Cook <bcook@openbsd.org>2015-03-21 19:04:54 -0500
committerBrent Cook <bcook@openbsd.org>2015-03-21 19:04:54 -0500
commit45065de1bafde1d34acd2cab1b8460663074961c (patch)
tree6a473b5864b1e652a0e45d8a260ed4d5113b79c8
parente38dc152d6b96aa724c6b77f3383bb75787c6f81 (diff)
downloadportable-45065de1bafde1d34acd2cab1b8460663074961c.tar.gz
portable-45065de1bafde1d34acd2cab1b8460663074961c.tar.bz2
portable-45065de1bafde1d34acd2cab1b8460663074961c.zip
rework tests Makefile.am
There are so many test exceptions that need handling that it is easier to simply edit it directly rather than doing autogeneration anymore. This also puts biotest and pidwraptest behind a new --enable-extratests option, so they are easy to run but are not enabled by default.
-rw-r--r--.gitignore1
-rw-r--r--configure.ac4
-rw-r--r--tests/Makefile.am282
-rw-r--r--tests/Makefile.am.tpl15
-rwxr-xr-xupdate.sh76
5 files changed, 289 insertions, 89 deletions
diff --git a/.gitignore b/.gitignore
index 6c70806..471ca3a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -92,7 +92,6 @@ INSTALL
92/stamp-h2 92/stamp-h2
93 93
94include/openssl/Makefile.am 94include/openssl/Makefile.am
95tests/Makefile.am
96 95
97crypto/VERSION 96crypto/VERSION
98ssl/VERSION 97ssl/VERSION
diff --git a/configure.ac b/configure.ac
index 6a50c1b..af4b26e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -287,6 +287,10 @@ AC_ARG_ENABLE([asm],
287 AS_HELP_STRING([--disable-asm], [Disable assembly])) 287 AS_HELP_STRING([--disable-asm], [Disable assembly]))
288AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"]) 288AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"])
289 289
290AC_ARG_ENABLE([extratests],
291 AS_HELP_STRING([--enable-extratests], [Enable extra tests that may be unreliable on some platforms]))
292AM_CONDITIONAL([ENABLE_EXTRATESTS], [test "x$enable_extratests" = xyes])
293
290old_cflags=$CFLAGS 294old_cflags=$CFLAGS
291CFLAGS="$old_cflags -I$srcdir/include" 295CFLAGS="$old_cflags -I$srcdir/include"
292AC_TRY_COMPILE([#include "$srcdir/crypto/modes/modes_lcl.h"], 296AC_TRY_COMPILE([#include "$srcdir/crypto/modes/modes_lcl.h"],
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..2ed7a44
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,282 @@
1include $(top_srcdir)/Makefile.am.common
2
3AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes
4AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1
5AM_CPPFLAGS += -I $(top_srcdir)/ssl
6
7LDADD = $(PLATFORM_LDADD) $(PROG_LDADD)
8LDADD += $(top_builddir)/ssl/libssl.la
9LDADD += $(top_builddir)/crypto/libcrypto.la
10
11TESTS =
12check_PROGRAMS =
13EXTRA_DIST =
14DISTCLEANFILES = pidwraptest.txt
15
16# aeadtest
17TESTS += aeadtest.sh
18check_PROGRAMS += aeadtest
19aeadtest_SOURCES = aeadtest.c
20EXTRA_DIST += aeadtest.sh
21EXTRA_DIST += aeadtests.txt
22
23# aes_wrap
24TESTS += aes_wrap
25check_PROGRAMS += aes_wrap
26aes_wrap_SOURCES = aes_wrap.c
27
28# arc4randomforktest
29# Windows/mingw does not have fork, but Cygwin does.
30if !HOST_WIN
31TESTS += arc4randomforktest.sh
32check_PROGRAMS += arc4randomforktest
33arc4randomforktest_SOURCES = arc4randomforktest.c
34endif
35EXTRA_DIST += arc4randomforktest.sh
36
37# asn1test
38TESTS += asn1test
39check_PROGRAMS += asn1test
40asn1test_SOURCES = asn1test.c
41
42# base64test
43TESTS += base64test
44check_PROGRAMS += base64test
45base64test_SOURCES = base64test.c
46
47# bftest
48TESTS += bftest
49check_PROGRAMS += bftest
50bftest_SOURCES = bftest.c
51
52# biotest
53# the BIO tests rely on resolver results that are OS and environment-specific
54if ENABLE_EXTRATESTS
55TESTS += biotest
56check_PROGRAMS += biotest
57biotest_SOURCES = biotest.c
58endif
59
60# bntest
61TESTS += bntest
62check_PROGRAMS += bntest
63bntest_SOURCES = bntest.c
64
65# bytestringtest
66TESTS += bytestringtest
67check_PROGRAMS += bytestringtest
68bytestringtest_SOURCES = bytestringtest.c
69
70# casttest
71TESTS += casttest
72check_PROGRAMS += casttest
73casttest_SOURCES = casttest.c
74
75# chachatest
76TESTS += chachatest
77check_PROGRAMS += chachatest
78chachatest_SOURCES = chachatest.c
79
80# cipherstest
81TESTS += cipherstest
82check_PROGRAMS += cipherstest
83cipherstest_SOURCES = cipherstest.c
84
85# cts128test
86TESTS += cts128test
87check_PROGRAMS += cts128test
88cts128test_SOURCES = cts128test.c
89
90# destest
91TESTS += destest
92check_PROGRAMS += destest
93destest_SOURCES = destest.c
94
95# dhtest
96TESTS += dhtest
97check_PROGRAMS += dhtest
98dhtest_SOURCES = dhtest.c
99
100# dsatest
101TESTS += dsatest
102check_PROGRAMS += dsatest
103dsatest_SOURCES = dsatest.c
104
105# ecdhtest
106TESTS += ecdhtest
107check_PROGRAMS += ecdhtest
108ecdhtest_SOURCES = ecdhtest.c
109
110# ecdsatest
111TESTS += ecdsatest
112check_PROGRAMS += ecdsatest
113ecdsatest_SOURCES = ecdsatest.c
114
115# ectest
116TESTS += ectest
117check_PROGRAMS += ectest
118ectest_SOURCES = ectest.c
119
120# enginetest
121TESTS += enginetest
122check_PROGRAMS += enginetest
123enginetest_SOURCES = enginetest.c
124
125# evptest
126TESTS += evptest.sh
127check_PROGRAMS += evptest
128evptest_SOURCES = evptest.c
129EXTRA_DIST += evptest.sh
130EXTRA_DIST += evptests.txt
131
132# explicit_bzero
133# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows
134if !HOST_WIN
135if !HOST_CYGWIN
136TESTS += explicit_bzero
137check_PROGRAMS += explicit_bzero
138explicit_bzero_SOURCES = explicit_bzero.c
139if !HAVE_MEMMEM
140explicit_bzero_SOURCES += memmem.c
141endif
142endif
143endif
144
145# exptest
146TESTS += exptest
147check_PROGRAMS += exptest
148exptest_SOURCES = exptest.c
149
150# gcm128test
151TESTS += gcm128test
152check_PROGRAMS += gcm128test
153gcm128test_SOURCES = gcm128test.c
154
155# gost2814789t
156TESTS += gost2814789t
157check_PROGRAMS += gost2814789t
158gost2814789t_SOURCES = gost2814789t.c
159
160# hmactest
161TESTS += hmactest
162check_PROGRAMS += hmactest
163hmactest_SOURCES = hmactest.c
164
165# ideatest
166TESTS += ideatest
167check_PROGRAMS += ideatest
168ideatest_SOURCES = ideatest.c
169
170# igetest
171TESTS += igetest
172check_PROGRAMS += igetest
173igetest_SOURCES = igetest.c
174
175# md4test
176TESTS += md4test
177check_PROGRAMS += md4test
178md4test_SOURCES = md4test.c
179
180# md5test
181TESTS += md5test
182check_PROGRAMS += md5test
183md5test_SOURCES = md5test.c
184
185# mdc2test
186TESTS += mdc2test
187check_PROGRAMS += mdc2test
188mdc2test_SOURCES = mdc2test.c
189
190# mont
191TESTS += mont
192check_PROGRAMS += mont
193mont_SOURCES = mont.c
194
195# pbkdf2
196TESTS += pbkdf2
197check_PROGRAMS += pbkdf2
198pbkdf2_SOURCES = pbkdf2.c
199
200# pidwraptest
201# pidwraptest relies on an OS-specific way to give out pids and is generally
202# awkward on systems with slow fork
203if ENABLE_EXTRATESTS
204TESTS += pidwraptest
205check_PROGRAMS += pidwraptest
206pidwraptest_SOURCES = pidwraptest.c
207endif
208
209# pkcs7test
210TESTS += pkcs7test
211check_PROGRAMS += pkcs7test
212pkcs7test_SOURCES = pkcs7test.c
213
214# poly1305test
215TESTS += poly1305test
216check_PROGRAMS += poly1305test
217poly1305test_SOURCES = poly1305test.c
218
219# pq_test
220TESTS += pq_test.sh
221check_PROGRAMS += pq_test
222pq_test_SOURCES = pq_test.c
223EXTRA_DIST += pq_test.sh
224EXTRA_DIST += pq_expected.txt
225
226# randtest
227TESTS += randtest
228check_PROGRAMS += randtest
229randtest_SOURCES = randtest.c
230
231# rc2test
232TESTS += rc2test
233check_PROGRAMS += rc2test
234rc2test_SOURCES = rc2test.c
235
236# rc4test
237TESTS += rc4test
238check_PROGRAMS += rc4test
239rc4test_SOURCES = rc4test.c
240
241# rmdtest
242TESTS += rmdtest
243check_PROGRAMS += rmdtest
244rmdtest_SOURCES = rmdtest.c
245
246# sha1test
247TESTS += sha1test
248check_PROGRAMS += sha1test
249sha1test_SOURCES = sha1test.c
250
251# sha256test
252TESTS += sha256test
253check_PROGRAMS += sha256test
254sha256test_SOURCES = sha256test.c
255
256# sha512test
257TESTS += sha512test
258check_PROGRAMS += sha512test
259sha512test_SOURCES = sha512test.c
260
261# shatest
262TESTS += shatest
263check_PROGRAMS += shatest
264shatest_SOURCES = shatest.c
265
266# ssltest
267TESTS += ssltest.sh
268check_PROGRAMS += ssltest
269ssltest_SOURCES = ssltest.c
270EXTRA_DIST += ssltest.sh
271EXTRA_DIST += testssl ca.pem server.pem
272
273# timingsafe
274TESTS += timingsafe
275check_PROGRAMS += timingsafe
276timingsafe_SOURCES = timingsafe.c
277
278# utf8test
279TESTS += utf8test
280check_PROGRAMS += utf8test
281utf8test_SOURCES = utf8test.c
282
diff --git a/tests/Makefile.am.tpl b/tests/Makefile.am.tpl
deleted file mode 100644
index 26334af..0000000
--- a/tests/Makefile.am.tpl
+++ /dev/null
@@ -1,15 +0,0 @@
1include $(top_srcdir)/Makefile.am.common
2
3AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes
4AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1
5AM_CPPFLAGS += -I $(top_srcdir)/ssl
6
7LDADD = $(PLATFORM_LDADD) $(PROG_LDADD)
8LDADD += $(top_builddir)/ssl/libssl.la
9LDADD += $(top_builddir)/crypto/libcrypto.la
10
11TESTS =
12check_PROGRAMS =
13EXTRA_DIST =
14DISTCLEANFILES = pidwraptest.txt
15
diff --git a/update.sh b/update.sh
index 435c888..7222266 100755
--- a/update.sh
+++ b/update.sh
@@ -208,82 +208,12 @@ $CP $libssl_regress/ssl/testssl tests
208for i in `find $libssl_regress -name '*.c'`; do 208for i in `find $libssl_regress -name '*.c'`; do
209 $CP "$i" tests 209 $CP "$i" tests
210done 210done
211
211$CP $libssl_regress/certs/ca.pem tests 212$CP $libssl_regress/certs/ca.pem tests
212$CP $libssl_regress/certs/server.pem tests 213$CP $libssl_regress/certs/server.pem tests
213
214# setup test drivers
215# do not directly run all test programs
216test_drivers=(
217 aeadtest
218 evptest
219 pq_test
220 ssltest
221 arc4randomforktest
222 pidwraptest
223)
224tests_posix_only=(
225 arc4randomforktest
226 explicit_bzero
227 pidwraptest
228)
229# the BIO tests rely on resolver results that are OS and environment-specific
230# explicit_bzero relies on SA_ONSTACK, not available on all systems
231# pidwraptest relies on an OS-specific way to give out pids and is generally
232# awkward on systems with slow fork
233tests_disabled=(
234 biotest
235 explicit_bzero
236 pidwraptest
237)
238$CP $libc_src/string/memmem.c tests/
239(cd tests
240 $CP Makefile.am.tpl Makefile.am
241
242 for i in `ls -1 *.c|sort|grep -v memmem.c`; do
243 TEST=`echo $i|sed -e "s/\.c//"`
244 if ! [[ ${tests_disabled[*]} =~ "$TEST" ]]; then
245 if [[ ${tests_posix_only[*]} =~ "$TEST" ]]; then
246 echo "if !HOST_WIN" >> Makefile.am
247 fi
248 if ! [[ ${test_drivers[*]} =~ "$TEST" ]]; then
249 echo "TESTS += $TEST" >> Makefile.am
250 fi
251 echo "check_PROGRAMS += $TEST" >> Makefile.am
252 echo "${TEST}_SOURCES = $i" >> Makefile.am
253 if [[ ${TEST} = "explicit_bzero" ]]; then
254 echo "if !HAVE_MEMMEM" >> Makefile.am
255 echo "explicit_bzero_SOURCES += memmem.c" >> Makefile.am
256 echo "endif" >> Makefile.am
257 fi
258 if [[ ${tests_posix_only[*]} =~ "$TEST" ]]; then
259 echo "endif" >> Makefile.am
260 fi
261 fi
262 done
263)
264$CP $libcrypto_regress/evp/evptests.txt tests
265$CP $libcrypto_regress/aead/aeadtests.txt tests
266$CP $libcrypto_regress/pqueue/expected.txt tests/pq_expected.txt
267chmod 755 tests/testssl 214chmod 755 tests/testssl
268for i in "${test_drivers[@]}"; do
269 if [ -e tests/${i}.sh ]; then
270 if ! [[ ${tests_disabled[*]} =~ "$i" ]]; then
271 if [[ ${tests_posix_only[*]} =~ "$i" ]]; then
272 echo "if !HOST_WIN" >> tests/Makefile.am
273 fi
274 echo "TESTS += ${i}.sh" >> tests/Makefile.am
275 if [[ ${tests_posix_only[*]} =~ "$i" ]]; then
276 echo "endif" >> tests/Makefile.am
277 fi
278 echo "EXTRA_DIST += ${i}.sh" >> tests/Makefile.am
279 fi
280 fi
281done
282echo "EXTRA_DIST += aeadtests.txt" >> tests/Makefile.am
283echo "EXTRA_DIST += evptests.txt" >> tests/Makefile.am
284echo "EXTRA_DIST += pq_expected.txt" >> tests/Makefile.am
285echo "EXTRA_DIST += testssl ca.pem server.pem" >> tests/Makefile.am
286 215
216# add headers
287(cd include/openssl 217(cd include/openssl
288 $CP Makefile.am.tpl Makefile.am 218 $CP Makefile.am.tpl Makefile.am
289 for i in `ls -1 *.h|sort`; do 219 for i in `ls -1 *.h|sort`; do
@@ -291,8 +221,8 @@ echo "EXTRA_DIST += testssl ca.pem server.pem" >> tests/Makefile.am
291 done 221 done
292) 222)
293 223
294echo "copying manpages"
295# copy manpages 224# copy manpages
225echo "copying manpages"
296(cd man 226(cd man
297 $CP Makefile.am.tpl Makefile.am 227 $CP Makefile.am.tpl Makefile.am
298 228