The branch master has been updated via 9576c498ca8793261adc20e9dca9cf419617cd3e (commit) via af3e8c298ab9fcee47d2d4a54f8be084990f9382 (commit) via a20c9075d6a72f484d1f27d99a54483a7e96fc51 (commit) via 587e4e53f886cd4d7a8b0eb063b823409e2ed4b9 (commit) from 94941cada25433a7dca35b5b9f8cbb751ab65ab3 (commit)
- Log ----------------------------------------------------------------- commit 9576c498ca8793261adc20e9dca9cf419617cd3e Author: Nicola Tuveri <nic....@gmail.com> Date: Tue Jun 30 15:56:14 2020 +0300 [test/README.md] minor fix of examples missing the test target Reviewed-by: David von Oheimb <david.von.ohe...@siemens.com> (Merged from https://github.com/openssl/openssl/pull/12326) commit af3e8c298ab9fcee47d2d4a54f8be084990f9382 Author: Nicola Tuveri <nic....@gmail.com> Date: Tue Jun 30 15:55:12 2020 +0300 Travis: default to HARNESS_JOBS=4 We can run tests in parallel by setting the HARNESS_JOBS environment variable. Reviewed-by: David von Oheimb <david.von.ohe...@siemens.com> (Merged from https://github.com/openssl/openssl/pull/12326) commit a20c9075d6a72f484d1f27d99a54483a7e96fc51 Author: Nicola Tuveri <nic....@gmail.com> Date: Tue Jun 30 10:23:56 2020 +0300 Run tests in parallel The environment variable `HARNESS_JOBS` can be used to control how many jobs to run in parallel. The default is still to run jobs sequentially. This commit does not define custom `rules`, and different versions of `TAP::Harness` come with different strategies regarding the default `rules` that define which test recipes can be run in parallel. In recent versions of Perl, unless specified otherwise any task can be run in parallel. Reviewed-by: David von Oheimb <david.von.ohe...@siemens.com> (Merged from https://github.com/openssl/openssl/pull/12326) commit 587e4e53f886cd4d7a8b0eb063b823409e2ed4b9 Author: Nicola Tuveri <nic....@gmail.com> Date: Sun Jun 28 17:07:59 2020 +0300 Fix memory leaks on OSSL_SERIALIZER_CTX_new_by_EVP_PKEY Fixes #12303 Reviewed-by: Richard Levitte <levi...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12304) ----------------------------------------------------------------------- Summary of changes: .travis.yml | 1 + crypto/serializer/serializer_pkey.c | 5 +++-- test/README.md | 25 ++++++++++++++++++++++--- test/run_tests.pl | 3 +++ 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index be9ba1e68f..174e9b182f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -173,6 +173,7 @@ before_script: fi; fi - ./configdata.pm --dump + - export HARNESS_JOBS=${HARNESS_JOBS:-4} - cd $top script: diff --git a/crypto/serializer/serializer_pkey.c b/crypto/serializer/serializer_pkey.c index d612070240..1e7fc3eafb 100644 --- a/crypto/serializer/serializer_pkey.c +++ b/crypto/serializer/serializer_pkey.c @@ -292,8 +292,6 @@ OSSL_SERIALIZER_CTX *OSSL_SERIALIZER_CTX_new_by_EVP_PKEY(const EVP_PKEY *pkey, const OSSL_PROVIDER *desired_prov = EVP_KEYMGMT_provider(keymgmt); OPENSSL_CTX *libctx = ossl_provider_library_context(desired_prov); struct selected_serializer_st sel_data; - OSSL_PROPERTY_LIST *check = ossl_parse_query(libctx, "type=parameters"); - OSSL_PROPERTY_LIST *current_props = NULL; OSSL_SERIALIZER *first = NULL; const char *name; int i; @@ -347,6 +345,9 @@ OSSL_SERIALIZER_CTX *OSSL_SERIALIZER_CTX_new_by_EVP_PKEY(const EVP_PKEY *pkey, ser = first; if (ser != NULL) { + OSSL_PROPERTY_LIST *check = NULL, *current_props = NULL; + + check = ossl_parse_query(libctx, "type=parameters"); current_props = ossl_parse_property(libctx, OSSL_SERIALIZER_properties(ser)); if (ossl_property_match_count(check, current_props) > 0) diff --git a/test/README.md b/test/README.md index 4db26bd047..76bf1b17aa 100644 --- a/test/README.md +++ b/test/README.md @@ -114,17 +114,36 @@ starting with "test_ssl_": Run only test group 10: - $ make TESTS='10' + $ make TESTS='10' test Run all tests except the slow group (group 99): - $ make TESTS='-99' + $ make TESTS='-99' test Run all tests in test groups 80 to 99 except for tests in group 90: - $ make TESTS='[89]? -90' + $ make TESTS='[89]? -90' test To stochastically verify that the algorithm that produces uniformly distributed random numbers is operating correctly (with a false positive rate of 0.01%): $ ./util/wrap.sh test/bntest -stochastic + +Running Tests in Parallel +------------------------- + +By default the test harness will execute the selected tests sequentially. +Depending on the platform characteristics, running more than one test job in +parallel may speed up test execution. +This can be requested by setting the `HARNESS_JOBS` environment variable to a +positive integer value. This specifies the maximum number of test jobs to run in +parallel. + +Depending on the Perl version different strategies could be adopted to select +which test recipes can be run in parallel. In recent versions of Perl, unless +specified otherwise, any task can be run in parallel. Consult the documentation +for `TAP::Harness` to know more. + +To run up to four tests in parallel at any given time: + + $ make HARNESS_JOBS=4 test diff --git a/test/run_tests.pl b/test/run_tests.pl index 8306c6018a..5eddaf8468 100644 --- a/test/run_tests.pl +++ b/test/run_tests.pl @@ -30,6 +30,7 @@ my $srctop = $ENV{SRCTOP} || $ENV{TOP}; my $bldtop = $ENV{BLDTOP} || $ENV{TOP}; my $recipesdir = catdir($srctop, "test", "recipes"); my $libdir = rel2abs(catdir($srctop, "util", "perl")); +my $jobs = $ENV{HARNESS_JOBS}; $ENV{OPENSSL_CONF} = rel2abs(catdir($srctop, "apps", "openssl.cnf")); $ENV{OPENSSL_CONF_INCLUDE} = rel2abs(catdir($bldtop, "providers")); @@ -44,6 +45,8 @@ my %tapargs = merge => 1, ); +$tapargs{jobs} = $jobs if defined $jobs; + # Additional OpenSSL special TAP arguments. Because we can't pass them via # TAP::Harness->new(), they will be accessed directly, see the # TAP::Parser::OpenSSL implementation further down