From: Heiko Schlittermann (HS12-RIPE) Date: Sat, 16 Nov 2019 13:37:00 +0000 (+0800) Subject: Testsuite: better sorting for exim_dumpdb output X-Git-Tag: exim-4.93-RC3^0 X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=3b90b1d1cde55d00590193db15fd6c7dd87f34c8;p=exim.git Testsuite: better sorting for exim_dumpdb output --- diff --git a/test/runtest b/test/runtest index d41e3c913..e8a3e8e85 100755 --- a/test/runtest +++ b/test/runtest @@ -2168,16 +2168,15 @@ if (/^dump\s+(\S+)/) if ($which eq "retry") { - $/ = "\n "; - @temp = ; - $/ = "\n"; - - @temp = sort { - my($aa) = split(' ', $a); - my($bb) = split(' ', $b); - return $aa cmp $bb; - } @temp; - + # the sort key is the first part of the retry db dump line, but for + # sorting we (temporarly) replace the own hosts ipv4 with a munged + # version, which matches the munging that is done later + # Why? We must ensure sure, that 127.0.0.1 always sorts first + # map-sort-map: Schwartz's transformation + my @temp = map { $_->[1] } + sort { $a->[0] cmp $b->[0] } + map { [ (split)[0] =~ s/\Q$parm_ipv4/ip4.ip4.ip4.ip4/gr, $_ ] } + do { local $/ = "\n "; <$in> }; foreach $item (@temp) { $item =~ s/^\s*(.*)\n(.*)\n?\s*$/$1\n$2/m;