Fix memory leak in tls_parse_stoc_key_share
[openssl.git] / test / generate_ssl_tests.pl
index 951421bb2c3dc57a3cafebb827344dbe37b9f38c..fd785b7bc687bc1c8ff987fec8669db54c14cadf 100644 (file)
@@ -45,32 +45,36 @@ sub print_templates {
         $test->{"server"} = { (%ssltests::base_server, %{$test->{"server"}}) };
         if (defined $test->{"server2"}) {
             $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server2"}}) };
-        } elsif (defined $test->{"test"}->{"ServerNameCallback"}) {
-            # Default is the same as server.
-            $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server"}}) };
         } else {
-            # Do not emit an empty "server2" section.
+            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"}}) };
-        } elsif (defined $test->{"test"}->{"HandshakeMode"} &&
-                 $test->{"test"}->{"HandshakeMode"} eq "Resume") {
-            # Default is the same as server.
-            $test->{"resume_server"} = { (%ssltests::base_server, %{$test->{"server"}}) };
         } else {
-            # Do not emit an empty "resume-server" section.
+            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"}}) };
-        } elsif (defined $test->{"test"}->{"HandshakeMode"} &&
-                 $test->{"test"}->{"HandshakeMode"} eq "Resume") {
-            # Default is the same as client.
-            $test->{"resume_client"} = { (%ssltests::base_client, %{$test->{"client"}}) };
         } else {
-            # Do not emit an empty "resume-client" section.
+            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"} = { };
         }
     }