go-imap icon indicating copy to clipboard operation
go-imap copied to clipboard

Run ImapTest

Open emersion opened this issue 5 years ago • 4 comments

https://github.com/dovecot/imaptest

emersion avatar May 11 '19 07:05 emersion

Tried to run imaptest stress testing against maddy. Using go-imap 1.0.0.beta.4 and go-imap-sql (dev branch).

Command:

imaptest seed=666 port=9999 copybox=INBOX2 user=testuser pass=foo mbox=~/Downloads/firefox/dovecot-crlf

Mentioned mbox file is here: http://www.dovecot.org/tmp/dovecot-crlf.

Outputer after running is two seconds: imaptest_stress.log (look for "Error:" lines)

Looks like there is some issue that makes responses get intermixed with literals in responses. Adding cilents=1 leaves only

Error: testuser[300]: DELETE failed: 300.6 NO Flags must be a list

foxcpp avatar May 14 '19 20:05 foxcpp

Need to check against RFC if this is a valid syntax.

*** Test close command 1/4 (line 3)
 - failed: Expected tagged reply 'ok', got 'NO Flags must be a list'
 - Command (tag 4.13): store 1,3 +flags \deleted

foxcpp avatar May 14 '19 20:05 foxcpp

Relevant ABNF from RFC 3501.

flag            = "\Answered" / "\Flagged" / "\Deleted" /
                  "\Seen" / "\Draft" / flag-keyword / flag-extension
store           = "STORE" SP sequence-set SP store-att-flags
store-att-flags = (["+" / "-"] "FLAGS" [".SILENT"]) SP
                  (flag-list / (flag *(SP flag)))

Turns out STORE * +FLAGS $FlagA $FlagB is also valid and equivalent to STORE * +FLAGS ($FlagA $FlagB).

foxcpp avatar May 14 '19 21:05 foxcpp

Adding to the v2 milestone. There is number of issues detected by imaptest that could be resolved only using breaking changes (see #323).

foxcpp avatar Dec 15 '19 17:12 foxcpp