From 3b90b1d1cde55d00590193db15fd6c7dd87f34c8 Mon Sep 17 00:00:00 2001 From: "Heiko Schlittermann (HS12-RIPE)" Date: Sat, 16 Nov 2019 21:37:00 +0800 Subject: Testsuite: better sorting for exim_dumpdb output --- test/runtest | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) 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; -- cgit v1.2.3