Prepend contents of failure log file in test suite output
[buildfarm-client.git] / run_build.pl
index 294347549cd3204670532f017069124f70199c0e..d95f64527163ce637cbcd30393c9135c8fe96e09 100755 (executable)
@@ -194,7 +194,6 @@ if (ref($force_every) eq 'HASH')
     $force_every = $force_every->{$branch} || $force_every->{default};
 }
 
-my $config_opts = $EximBuild::conf{config_opts};
 my $scm = new EximBuild::SCM \%EximBuild::conf;
 
 my $buildport;
@@ -1000,6 +999,15 @@ sub make_test
                   ./runtest \$WORKDIR/$exim/src/build-*/exim -CONTINUE $tests_range )2>&1`;
       $status = $? >>8;
       push @makeout, @tmp;
+      # Prepend the failed summary log outputs for ease of reading
+      my $fail_summary = "$exim/test/failed-summary.log";
+      if (-f $fail_summary)
+      {
+        @tmp = `cat $fail_summary`;
+        push @tmp, "\n";
+        unshift @makeout, @tmp;
+        unshift @makeout, "Summary of failed tests:\n";
+      }
     }
     writelog('test',\@makeout);
     print "======== make test logs ===========\n",@makeout
@@ -1061,19 +1069,6 @@ sub configure
     return unless step_wanted('configure');
     print time_str(),"creating configuration ...\n" if $verbose;
 
-    my @quoted_opts;
-    foreach my $c_opt (@$config_opts)
-    {
-        if ($c_opt =~ /['"]/)
-        {
-            push(@quoted_opts,$c_opt);
-        }
-        else
-        {
-            push(@quoted_opts,"'$c_opt'");
-        }
-    }
-
     my $env = $EximBuild::conf{makefile_set};
     my $add = $EximBuild::conf{makefile_add};
     my $features = $EximBuild::conf{makefile_regex};
@@ -1146,6 +1141,17 @@ sub configure
                 echo "Contents of Local/Makefile:"
                 egrep '^[^#]' $local_conf `;
         push @confout, @tmp;
+        # Build the config_opts array to send to the server
+        chomp @tmp;
+        my @config_opts = grep s/(?:LOOKUP_|EXPERIMENTAL_|USE_)(\S+)=.*/$1/,
+                          @tmp;
+        push @config_opts, grep s/^(?:EXIM_)(PERL|PYTHON)=.*/$1/,
+                           @tmp;
+        # OpenSSL doesn't have a specific USE flag
+        push @config_opts, grep s/^(TLS_LIBS.*-l(ssl|crypto)).*/OPENSSL/,
+                           @tmp;
+        $EximBuild::conf{config_opts} = \@config_opts;
+        
         # Does not matter what the Exim version is, as long as it is valid.
         my $exim_ver = $EximBuild::conf{exim_test_version} || '4.82';
         `cd $exim