From: Richard Levitte Date: Fri, 10 Mar 2017 19:42:12 +0000 (+0100) Subject: Encourage having external tests in multiple test recipes X-Git-Tag: OpenSSL_1_1_1-pre1~2072 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fb68fba05f1b43cc9715fdb99e573b000bdb7969;p=oweals%2Fopenssl.git Encourage having external tests in multiple test recipes This will make the individual external tests more easily selectable / deselectable through the usual test selection mechanism. This also moves external tests to group 95. Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/2902) --- diff --git a/test/README.external b/test/README.external index 3cd0541408..f411e731ec 100644 --- a/test/README.external +++ b/test/README.external @@ -1,13 +1,17 @@ -Running the BoringSSL test suite with OpenSSL -============================================= - -It is possible to integrate external test suites into OpenSSL's "make test". At -the current time the only supported external suite is the one used by -BoringSSL. +Running external test suites with OpenSSL +========================================= +It is possible to integrate external test suites into OpenSSL's "make test". This capability is considered a developer option and may not work on all platforms. +At the current time the only supported external suite is the one used by +BoringSSL. + + +The BoringSSL test suite +======================== + In order to run the BoringSSL tests with OpenSSL, first checkout the BoringSSL source code into an appropriate directory: @@ -40,11 +44,11 @@ To see more detailed output you can run just the BoringSSL tests with the verbose option: $ VERBOSE=1 BORING_RUNNER_DIR=/path/to/boringssl/ssl/test/runner make \ - TESTS="test_external" test + TESTS="test_external_boringssl" test Test failures and suppressions -============================== +------------------------------ A large number of the BoringSSL tests are known to fail. A test could fail because of many possible reasons. For example: diff --git a/test/recipes/90-test_external.t b/test/recipes/90-test_external.t deleted file mode 100644 index 3bdc4afe67..0000000000 --- a/test/recipes/90-test_external.t +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env perl -# Copyright 2015-2016 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 - - -use OpenSSL::Test; -use OpenSSL::Test::Utils; -use OpenSSL::Test qw/:DEFAULT bldtop_file srctop_file cmdstr/; - -setup("test_external"); - -plan skip_all => "No external tests in this configuration" - if disabled("external-tests"); - -if (!$ENV{BORING_RUNNER_DIR}) { - plan skip_all => "No external tests have been detected"; -} - -plan tests => 1; - -indir $ENV{BORING_RUNNER_DIR} => sub { - ok(filter_run(cmd(["go", "test", "-shim-path", - bldtop_file("test", "ossl_shim", "ossl_shim"), - "-shim-config", - srctop_file("test", "ossl_shim", "ossl_config.json"), - "-pipe", "-allow-unimplemented"])), - "running external tests"); -}, create => 0, cleanup => 0; - -# Filter the output so that the "ok" printed by go test doesn't confuse -# Test::More. Without that it thinks there has been one more test run than was -# planned -sub filter_run { - my $cmd = cmdstr(shift); - open(PIPE, "-|", $cmd); - while() { - print STDOUT "go test: ", $_; - } - close PIPE; -} diff --git a/test/recipes/95-test_external_boringssl.t b/test/recipes/95-test_external_boringssl.t new file mode 100644 index 0000000000..a49e6ea466 --- /dev/null +++ b/test/recipes/95-test_external_boringssl.t @@ -0,0 +1,43 @@ +#! /usr/bin/env perl +# Copyright 2015-2016 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 + + +use OpenSSL::Test; +use OpenSSL::Test::Utils; +use OpenSSL::Test qw/:DEFAULT bldtop_file srctop_file cmdstr/; + +setup("test_external_boringssl"); + +plan skip_all => "No external tests in this configuration" + if disabled("external-tests"); + +plan skip_all => "BoringSSL runner not detected" + if !$ENV{BORING_RUNNER_DIR}; + +plan tests => 1; + +indir $ENV{BORING_RUNNER_DIR} => sub { + ok(filter_run(cmd(["go", "test", "-shim-path", + bldtop_file("test", "ossl_shim", "ossl_shim"), + "-shim-config", + srctop_file("test", "ossl_shim", "ossl_config.json"), + "-pipe", "-allow-unimplemented"])), + "running BoringSSL tests"); +}, create => 0, cleanup => 0; + +# Filter the output so that the "ok" printed by go test doesn't confuse +# Test::More. Without that it thinks there has been one more test run than was +# planned +sub filter_run { + my $cmd = cmdstr(shift); + open(PIPE, "-|", $cmd); + while() { + print STDOUT "go test: ", $_; + } + close PIPE; +}