On 23.7.2013, at 1.17, Mike Abbott michael.abbott@apple.com wrote:
Attached please find a perl script which tests the CATENATE support in dovecot. I used this to test my CATENATE implementation a few years ago and it runs fine against dovecot in OS X Server. When run against dovecot-2.2.4 though it always fails or hangs, which in some cases means we interpreted RFCs differently and in other cases means it's finding bugs; both conditions are worthy of scrutiny. (It's random-number driven so every run is different.) A couple months ago I reported a few simple bugs which this script found and you fixed them; thanks. Then it started finding problems for which it's harder to isolate simple reproducible test cases. Vacations and other work interceded but now Apple is pleased to give you the script itself to allow you to iterate faster.
Thanks. I finally tested this and fixed various bugs: http://hg.dovecot.org/dovecot-2.2/rev/3c2e1879fdf6
There is still one difference between what the script expects and what Dovecot does:
x append inbox catenate (url ;invalid; url {5}
Dovecot replies with "+ OK" because it wants to read all the URLs into memory before parsing them, while catenate.pl expects an error message immediately. It doesn't look like this could be easily changed in Dovecot.