X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=test%2Fgenerate_ssl_tests.pl;h=47a328c80dd2e5822291a0db4ac6785919d5dd5b;hp=db8fc74d44f92cdd7876fb5af4261a160da42108;hb=6862de63d469f3148a2ff5a04a6b9ab6413bd5ac;hpb=5c753de668322bf9903a49ba713b2cbc62667571 diff --git a/test/generate_ssl_tests.pl b/test/generate_ssl_tests.pl index db8fc74d44..47a328c80d 100644 --- a/test/generate_ssl_tests.pl +++ b/test/generate_ssl_tests.pl @@ -22,7 +22,7 @@ BEGIN { OpenSSL::Test::setup("no_test_here"); } -use lib srctop_dir("util"); # for with_fallback +use lib srctop_dir("util", "perl"); # for with_fallback use lib srctop_dir("test", "ssl-tests"); # for ssltests_base use with_fallback qw(Text::Template); @@ -43,13 +43,40 @@ sub print_templates { # Add the implicit base configuration. foreach my $test (@ssltests::tests) { $test->{"server"} = { (%ssltests::base_server, %{$test->{"server"}}) }; - # use server values if server2 is not defined - if (defined $test->{"server2"}) { - $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server2"}}) }; - } else { - $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server"}}) }; - } + if (defined $test->{"server2"}) { + $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server2"}}) }; + } else { + if ($test->{"server"}->{"extra"} && + defined $test->{"server"}->{"extra"}->{"ServerNameCallback"}) { + # Default is the same as server. + $test->{"reuse_server2"} = 1; + } + # Do not emit an empty/duplicate "server2" section. + $test->{"server2"} = { }; + } + if (defined $test->{"resume_server"}) { + $test->{"resume_server"} = { (%ssltests::base_server, %{$test->{"resume_server"}}) }; + } else { + if (defined $test->{"test"}->{"HandshakeMode"} && + $test->{"test"}->{"HandshakeMode"} eq "Resume") { + # Default is the same as server. + $test->{"reuse_resume_server"} = 1; + } + # Do not emit an empty/duplicate "resume-server" section. + $test->{"resume_server"} = { }; + } $test->{"client"} = { (%ssltests::base_client, %{$test->{"client"}}) }; + if (defined $test->{"resume_client"}) { + $test->{"resume_client"} = { (%ssltests::base_client, %{$test->{"resume_client"}}) }; + } else { + if (defined $test->{"test"}->{"HandshakeMode"} && + $test->{"test"}->{"HandshakeMode"} eq "Resume") { + # Default is the same as client. + $test->{"reuse_resume_client"} = 1; + } + # Do not emit an empty/duplicate "resume-client" section. + $test->{"resume_client"} = { }; + } } # ssl_test expects to find a @@ -98,8 +125,7 @@ sub print_templates { # Shamelessly copied from Configure. sub read_config { my $fname = shift; - open(INPUT, "< $fname") - or die "Can't open input file '$fname'!\n"; + open(INPUT, "< $fname") or die "Can't open input file '$fname'!\n"; local $/ = undef; my $content = ; close(INPUT);