Do not log error if UID(s) are missing in SEARCH if EXPUNGEISSUED is seen
Parse tests in ordered manner
This is to avoid problems if you want to execute files in test directory using some particular order.
Fully fix literal handling.
13870004147e39accae9806eb332870bdf881816 broke some tests.
imaptest: include missing time.h header
Added missing mailbox-source-private.h
Added random_msg_size parameter to generate completely random garbage mails.
Code cleanup - move mbox-specific mailbox_source code to its own file.
Code cleanup - Hide struct mailbox_source to .c file.
Code cleanup: Don't refer to mailbox_source's istream directly while handling IMAP APPEND.
This allows creating other istreams what can be APPENDed.
test-exec: Don't assert-crash on invalid test file
Fix compiler warnings about write() return value
user: Dangerously silence -Wformat-nonliteral
Taking a format string from the outside world normally suicide. And the only thing worse than suicide is being persistently nagged about it.
However, the previous patch should mean that suicide is now impossible, so this really is just nagging now. (Even if it's possible to open up new holes in the future.)
conf: Sanitise format strings from tainted sources
Make sure the '%' expressions only have int type, and the quantity is no greater than the number of ints we'll actually be passing. %i is allowed in case people forget it should be %d. Only /%[0-9]*[id]/ is considered valid for formatting ints at this point.
This makes the previous dangerous patch that touched the username parsing not so dangerous any more.
Actually, never continue creating connection to a same user.
Even with 10% chance of doing it, it's a lot of them with high enough client counts. It also makes much more sense to just do it randomly. If you want to test multiple connections to the same user, just user a low enough user count and high enough client count.
Don't create so many concurrent connections to the same user.
Dovecot API change: buffer_reset() -> buffer_set_used_size()
Added a few missing items to .gitignore.
Avoid using o_stream_send_istream() return value.
Its API will change.
Added "msubs" test for randomly subscribing/unsubscribing.
Fixed assert-crash when timers overflowed after running for a while.
tests: Improved SEARCH FLAGS tests
This catches a bug in Dovecot <2.2.24.
tests/append-binary: Be more flexible with non-BINARY FETCH result
It's not necessarily base64 encoded. It's also possible that the result contains extra line feeds, like with Dovecot mbox.