Hintsdb sqlite: use transaction rather than file lock
[exim.git] / test / runtest
index 29ea66a9fd1a9814c4c4544bdcc7197533b1916f..d205f9509ba7334be0f4d408021db8b7f2ed0484 100755 (executable)
@@ -1055,6 +1055,9 @@ RESET_AFTER_EXTRA_LINE_READ:
     # remote IPv6 addrs vary
     s/^(Connection request from) \[.*:.*:.*\]$/$1 \[ipv6\]/;
 
+    # Hints DB use of lockfiles is provider-dependent
+    s/Failed to open \K(?:DBM|database lock) file (.*\/spool\/db\/[^.]*)(?:.lockfile)?(?=(?: for reading)?: No such file or directory$)/hintsdb $1/;
+
     # openssl version variances
   # Error lines on stdout from SSL contain process id values and file names.
   # They also contain a source file name and line number, which may vary from
@@ -1152,6 +1155,10 @@ RESET_AFTER_EXTRA_LINE_READ:
                )
              /x;
 
+    # Hints DB use of lockfiles is provider-dependent
+    next if /lock(?:ing|ed) .*\/spool\/db\/[^.]+\.lockfile$/;
+    s/closed hints database\K and lockfile$//;
+
     # Lines with a leading pid.  Only handle >= 4-digit PIDs to avoid converting SMTP respose codes
     s/^\s*(\d{4,})\s(?!(?:previous message|in\s|bytes remain in|SMTP accept process running))/new_value($1, "p%s", \$next_pid) . ' '/e;
 
@@ -1284,9 +1291,6 @@ RESET_AFTER_EXTRA_LINE_READ:
     # We invoke Exim with -D, so we hit this new message as of Exim 4.73:
     next if /^macros_trusted overridden to true by whitelisting/;
 
-    # Hints-db writes seem to have variable sizes for values
-    s/ dbfn_write: key=.+ datalen \K\d+$/NNN/;
-
     # We have to omit the localhost ::1 address so that all is well in
     # the IPv4-only case.