diff options
author | Richard Levitte <levitte@openssl.org> | 2018-03-26 11:00:05 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-03-31 16:40:07 +0200 |
commit | efe749c84050b99a8470aa58a6c464cf886cfc00 (patch) | |
tree | 170ff6dcce70551615cee4f74ed717335348c00a /test | |
parent | f91e026e38321d0c154f535ecd5af09e424e7f1b (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.info | 5 | ||||
-rw-r--r-- | test/recipes/80-test_cipherlist.t | 7 | ||||
-rw-r--r-- | test/versions.c | 20 |
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; +} |