]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
80-test_cmp_http.t: Simplify and prevent hangs on server not launching/behaving correctly
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>
Mon, 7 Jun 2021 09:44:23 +0000 (11:44 +0200)
committerDr. David von Oheimb <dev@ddvo.net>
Wed, 9 Jun 2021 12:03:16 +0000 (14:03 +0200)
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15642)

test/recipes/80-test_cmp_http.t

index 9c99226721ec4ebd4b77f97760676aa3a381fd56..bc23347ad738e2e9d6abfdb6702c6f3a09820f00 100644 (file)
@@ -276,28 +276,19 @@ sub start_mock_server {
     my $pid = open($server_fh, "$cmd|") or die "Trying to $cmd";
     print "Pid is: $pid\n";
     if ($server_port == 0) {
-        # Clear it first
-        $server_port = undef;
-
         # Find out the actual server port
         while (<$server_fh>) {
-            print;
+            print "Server output: $_";
+            next if m/using section/;
             s/\R$//;                # Better chomp
-            next unless (/^ACCEPT/);
-
-            # $1 may be undefined, which is OK to assign to $server_port,
-            # as that gets detected further down.
-            /^ACCEPT\s.*:(\d+)$/;
-            $server_port = $1;
-
-            last;
-        }
-
-        unless (defined $server_port) {
-            stop_mock_server($pid);
-            return 0;
+            $server_port = $1 if /^ACCEPT\s.*:(\d+)$/;
+            last; # Do not loop further to prevent hangs on server misbehavior
         }
     }
+    unless ($server_port > 0) {
+        stop_mock_server($pid);
+        return 0;
+    }
     $server_tls = $kur_port = $pbm_port = $server_port;
     return $pid;
 }