summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2018-03-26 11:00:05 +0200
committerRichard Levitte <levitte@openssl.org>2018-03-31 16:40:07 +0200
commitefe749c84050b99a8470aa58a6c464cf886cfc00 (patch)
tree170ff6dcce70551615cee4f74ed717335348c00a /test
parentf91e026e38321d0c154f535ecd5af09e424e7f1b (diff)
Refuse to run test_cipherlist unless shared library matches build
test/cipherlist_test.c is an internal consistency check, and therefore requires that the shared library it runs against matches what it was built for. test/recipes/test_cipherlist.t is made to refuse running unless library version and build version match. This adds a helper program test/versions.c, that simply displays the library and the build version. Partially fixes #5751 Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5753) (cherry picked from commit cde87deafa7486f26bdf954867a6d72ca4ea06e7)
Diffstat (limited to 'test')
-rw-r--r--test/build.info5
-rw-r--r--test/recipes/80-test_cipherlist.t7
-rw-r--r--test/versions.c20
3 files changed, 31 insertions, 1 deletions
diff --git a/test/build.info b/test/build.info
index f6f36fa0b2..7887813047 100644
--- a/test/build.info
+++ b/test/build.info
@@ -24,6 +24,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN
ENDRAW[descrip.mms]
PROGRAMS_NO_INST=\
+ versions \
aborttest test_test \
sanitytest exdatatest bntest \
ectest ecstresstest ecdsatest gmdifftest pbelutest ideatest \
@@ -52,6 +53,10 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN
servername_test ocspapitest rsa_mp_test fatalerrtest tls13ccstest \
sysdefaulttest
+ SOURCE[versions]=versions.c
+ INCLUDE[versions]=../include
+ DEPEND[versions]=../libcrypto
+
SOURCE[aborttest]=aborttest.c
INCLUDE[aborttest]=../include
DEPEND[aborttest]=../libcrypto
diff --git a/test/recipes/80-test_cipherlist.t b/test/recipes/80-test_cipherlist.t
index 98d537e5f3..6e869c85b4 100644
--- a/test/recipes/80-test_cipherlist.t
+++ b/test/recipes/80-test_cipherlist.t
@@ -12,11 +12,16 @@ use strict;
use warnings;
use OpenSSL::Test::Simple;
-use OpenSSL::Test;
+use OpenSSL::Test qw(:DEFAULT openssl_versions);
use OpenSSL::Test::Utils qw(alldisabled available_protocols);
setup("test_cipherlist");
+my ($build_version, $library_version) = openssl_versions();
+plan skip_all =>
+ "This test recipe isn't supported when doing regression testing"
+ if $build_version != $library_version;
+
my $no_anytls = alldisabled(available_protocols("tls"));
# If we have no protocols, then we also have no supported ciphers.
diff --git a/test/versions.c b/test/versions.c
new file mode 100644
index 0000000000..3ab05ec35d
--- /dev/null
+++ b/test/versions.c
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+#include <openssl/opensslv.h>
+#include <openssl/crypto.h>
+
+/* A simple helper for the perl function OpenSSL::Test::openssl_versions */
+int main(void)
+{
+ printf("Build version: 0x%08lX\n", OPENSSL_VERSION_NUMBER);
+ printf("Library version: 0x%08lX\n", OpenSSL_version_num());
+ return 0;
+}