http://dovecot.org/tools/imaptest.c now keeps track of messages' metadata and complains if they change. It relies on Message-ID: header being unique in the source mailbox, otherwise it'll give bogus errors. I might fix that some day.
I changed the code from using simple line-based parsing to Dovecot's imap-parser code. Unfortunately it looks like it's pretty slow. At least I'm pretty sure imaptest didn't take more than a few % of CPU before, while now it's showing 35% CPU usage.. I guess I'll have to profile it a bit to see what's eating the CPU.
And yes, looks like it found a couple of bugs from Dovecot 1.1's MIME parsing (BODY/BODYSTRUCTURE replies change). That was actually why I wrote this code in the first place, I was trying to figure out how to reproduce a bug.
I'm getting closer to my stress testing dream tool. :) http://mailman1.u.washington.edu/pipermail/imap-protocol/2007-March/000413.h...