exim-filter dynamic module
[exim.git] / test / runtest
index 3e10a5ab7e5dcb88764d4a4c75d502cefbc1e2e3..bb9b1ceeed1a897372ea3afb91be57de166adb35 100755 (executable)
@@ -383,7 +383,7 @@ $date = "\\d{2}-\\w{3}-\\d{4}\\s\\d{2}:\\d{2}:\\d{2}";
 
 # Debug time & pid
 
-$time_pid = "(?:\\d{2}:\\d{2}:\\d{2}\\s+\\d+\\s)";
+$time_pid = "(?:(?:\\d{2}:\\d{2}:\\d{2}\\s+)?\\d+\\s)";
 
 # Pattern for matching pids at start of stderr lines; initially something
 # that won't match.
@@ -1315,11 +1315,14 @@ RESET_AFTER_EXTRA_LINE_READ:
     # different libraries will have different numbers (possibly 0) of follow-up
     # lines, indenting with more data
     if (/^$time_pid?Library version:/) {
-      while (1) {
+      $_ = <IN>;
+      if (/^$time_pid?\s/) {
        $_ = <IN>;
-       next if /^$time_pid?\s/;
-       goto RESET_AFTER_EXTRA_LINE_READ;
+       if (/^$time_pid?\s/) {
+         $_ = <IN>;
+       }
       }
+      goto RESET_AFTER_EXTRA_LINE_READ;
     }
 
     # drop other build-time controls emitted for debugging
@@ -1472,7 +1475,6 @@ RESET_AFTER_EXTRA_LINE_READ:
       }
 
     # Different builds will have different lookup types included
-    s/required_quoter_id \K\d+ \((\w+)\) quoting -1 \(NULL\)$/NN ($1) quoting -1 (NULL)/;
     # and different numbers of lookup types result in different type-code letters,
     # so convert them all to "0"
     s%(?<!lsearch)[^ ](?=TESTSUITE/aux-fixed/(?:0414.list[12]|0464.domains)$)%0%;
@@ -1552,12 +1554,16 @@ RESET_AFTER_EXTRA_LINE_READ:
       <IN>; <IN>; <IN>; <IN>; <IN>; next;
       }
 
+    # various features can be built as dynamic-load modules
+    next if /loading module '(?:arc|exim_filter|dkim|dmarc|pam|perl|radius|sieve_filter|spf)'$/;
+
     # Not all platforms build with DKIM enabled
     next if /^DKIM >> Body data for hash, canonicalized/;
 
     # Not all platforms build with SPF enabled
-    next if /(^spf_conn_init|^SPF_dns_exim_new|spf_compile\.c)/;
+    next if /(^$time_pid?spf_conn_init|spf_compile\.c)/;
     next if /try option spf_smtp_comment_template$/;
+    next if /^$time_pid?Loaded "(?:dkim|dmarc|exim_filter|spf)"$/;
 
     # Not all platforms have sendfile support
     next if /^cannot use sendfile for body: no support$/;
@@ -4143,7 +4149,6 @@ system("sudo cp eximdir/exim eximdir/exim_exim;" .
        "sudo chmod 06755 eximdir/exim_exim");
 
 # Copy any libraries that were built for dynamic load
-# Currently this is only for lookup methods
 
 ($parm_exim_dir) = $parm_exim =~ m?^(.*)/exim?;
 
@@ -4425,6 +4430,9 @@ foreach $basedir ("aux-var", "dnszones")
       $" = ' ';
       }
 
+    my $testnum = 0;
+    if ($file =~ /^(\d+)/) { $testnum = $1; }
+
     print ">>Copying $basedir-src/$file to $basedir/$outfile\n" if $debug;
     open(IN, "$parm_cwd/$basedir-src/$file") ||
       tests_exit(-1, "Failed to open $parm_cwd/$basedir-src/$file: $!");
@@ -4432,7 +4440,7 @@ foreach $basedir ("aux-var", "dnszones")
       tests_exit(-1, "Failed to open $parm_cwd/$basedir/$outfile: $!");
     while (<IN>)
       {
-      do_substitute(0);
+      do_substitute($testnum);
       print OUT;
       }
     close(IN);