diff --git a/test/README.ssltest.md b/test/README.ssltest.md index 81ee7dfdb8..85a6430799 100644 --- a/test/README.ssltest.md +++ b/test/README.ssltest.md @@ -283,3 +283,14 @@ of the generated `test/ssl-tests/*.cnf` correspond to expected outputs in with the default Configure options. To run `ssl_test` manually from the command line in a build with a different configuration, you may need to generate the right `*.cnf` file from the `*.cnf.in` input first. + +Running a test manually via make +-------------------------------- + +Individual tests may be run by adding the SSL_TESTS variable to the `make` +command line. The SSL_TESTS variable is set to the list of input (or ".in") +files. The values in SSL_TESTS are globbed. + + $ make test TESTS=test_ssl_new SSL_TESTS="0*.cnf.in" + + $ make test TESTS=test_ssl_new SSL_TESTS="01-simple.cnf.in 05-sni.cnf.in" diff --git a/test/recipes/80-test_ssl_new.t b/test/recipes/80-test_ssl_new.t index a1828094db..5b2557d5a1 100644 --- a/test/recipes/80-test_ssl_new.t +++ b/test/recipes/80-test_ssl_new.t @@ -27,15 +27,23 @@ my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0); $ENV{TEST_CERTS_DIR} = srctop_dir("test", "certs"); -my @conf_srcs = glob(srctop_file("test", "ssl-tests", "*.cnf.in")); +my @conf_srcs = (); +if (defined $ENV{SSL_TESTS}) { + my @conf_list = split(' ', $ENV{SSL_TESTS}); + foreach my $conf_file (@conf_list) { + push (@conf_srcs, glob(srctop_file("test", "ssl-tests", $conf_file))); + } + plan tests => scalar @conf_srcs; +} else { + @conf_srcs = glob(srctop_file("test", "ssl-tests", "*.cnf.in")); + # We hard-code the number of tests to double-check that the globbing above + # finds all files as expected. + plan tests => 30; +} map { s/;.*// } @conf_srcs if $^O eq "VMS"; my @conf_files = map { basename($_, ".in") } @conf_srcs; map { s/\^// } @conf_files if $^O eq "VMS"; -# We hard-code the number of tests to double-check that the globbing above -# finds all files as expected. -plan tests => 30; - # Some test results depend on the configuration of enabled protocols. We only # verify generated sources in the default configuration. my $is_default_tls = (disabled("ssl3") && !disabled("tls1") &&