commit f3629c69e1b098cc0ef475dbc915e9f958df90cf Author: Oswald Buddenhagen <o...@users.sf.net> Date: Fri Apr 3 12:18:26 2020 +0200
autotest: re-organize mailbox storage by UID an effect of 7ce658d is that we can index messages by UID rather than content (or more specifically, subject). apart from being cleaner, it allows duplicated subjects. src/run-tests.pl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/run-tests.pl b/src/run-tests.pl index 4c84ef5..072f84e 100755 --- a/src/run-tests.pl +++ b/src/run-tests.pl @@ -344,7 +344,7 @@ sub readbox($) print STDERR "message '$f' in '$bn' has no identifier.\n"; exit 1; } - @{ $ms{$num} } = ($uid, $flg.($sz>1000?"*":"")); + @{ $ms{$uid} } = ($num, $flg.($sz>1000?"*":"")); } } return ($mu, %ms); @@ -360,8 +360,8 @@ sub showbox($) my ($mu, %ms) = readbox($bn); my @MS = ($mu); - for my $num (sort { $a <=> $b } keys %ms) { - push @MS, $num, $ms{$num}[0], $ms{$num}[1]; + for my $uid (sort { $ms{$a}[0] <=> $ms{$b}[0] } keys %ms) { + push @MS, $ms{$uid}[0], $uid, $ms{$uid}[1]; } printbox($bn, @MS); } @@ -487,19 +487,19 @@ sub ckbox($$@) } while (@MS) { my ($num, $uid, $flg) = (shift @MS, shift @MS, shift @MS); - if (!defined $ms{$num}) { - print STDERR "No message $bn:$num.\n"; + my $m = delete $ms{$uid}; + if (!defined $m) { + print STDERR "No message $bn:$uid.\n"; return 1; } - if ($ms{$num}[0] ne $uid) { - print STDERR "UID mismatch for $bn:$num.\n"; + if ($$m[0] ne $num) { + print STDERR "Subject mismatch for $bn:$uid.\n"; return 1; } - if ($ms{$num}[1] ne $flg) { - print STDERR "Flag mismatch for $bn:$num.\n"; + if ($$m[1] ne $flg) { + print STDERR "Flag mismatch for $bn:$uid.\n"; return 1; } - delete $ms{$num}; } if (%ms) { print STDERR "Excess messages in '$bn': ".join(", ", sort({$a <=> $b } keys(%ms))).".\n"; _______________________________________________ isync-devel mailing list isync-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/isync-devel