Differences between revisions 6 and 7
Revision 6 as of 2018-08-23 09:00:52
Size: 4088
Editor: TimoSirainen
Comment:
Revision 7 as of 2023-11-07 21:13:41
Size: 80
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
By default imaptest runs through all the states in the order specified in the table below. Each command is run with the given probability. If it's not run, it skips to the next command and performs the same check for it. Only commands that are valid in the current connection state can be processed of course. Using "random" parameter will randomize the order of commands in "selected" state completely, so 1) randomized command is chosen and 2) probability check will determine if it's used or the next random command will be attempted.

States can be specified using full or short names. You specify the probabilities in percents, so for example {{{list=30}}} means that LIST command is executed with 30% probability.

The second probability is mainly useful for APPEND, where it controls how often to append multiple messages with MULTIAPPEND extension, so for example {{{append=80,30}}} means that APPEND command is executed with 80% probability, and after each appended message there's a 30% chance of the APPEND command continuing.

You can disable all except LOGIN, LOGOUT and SELECT states by giving "-" parameter. For example: {{{./imaptest - select=0 append=100,0 logout=0}}} will do nothing but a LOGIN followed by APPENDs.

|| Name || Short name || Default% || Description ||
|| AUTHENTICATE || Auth || 0 || Authentication with AUTHENTICATE PLAIN command ||
|| LOGIN || Logi || 100 || Authentication with LOGIN command ||
|| LIST || List || 50 || LIST "" * ||
|| MCREATE || LCre || 0 || CREATE test/x/y mailboxes randomly. '/' separator is hardcoded currently. ||
|| MDELETE || LDel || 0 || DELETE test/x/y mailboxes randomly. ||
|| MSUBS || MSub || 0 || SUBSCRIBE and UNSUBUSCRIBE test/x/y mailboxes randomly. ||
|| STATUS || Stat || 50 || STATUS (MESSAGES UNSEEN RECENT) ||
|| SELECT || Sele || 100 || SELECT mailbox (required for most states below) ||
|| UIDFETCH || UIDF || 0 || UID FETCH 1:* FLAGS - This is run only once per session. The probability specifies how likely the first time happens. ||
|| FETCH || Fetc || 100 || FETCH n:m (random fields) where n:m is a range with random start for 100 messages (or all messages if mailbox has less than 100 messages). Randomly fetched fields are: UID, FLAGS, ENVELOPE, INTERNALDATE, BODY, BODYSTRUCTURE and BODY.PEEK[HEADER.FIELDS (random headers)]. Random headers are: From, To, Cc, Subject, Message-ID, In-Reply-To, References, Delivered-To. ||
|| FETCH2 || Fet2 || 100,30 || FETCH n (BODY.PEEK[]) where n is a random message ||
|| SEARCH || Sear || 0 || SEARCH <random search query> where the query can contain multiple parameters, including ORs and parenthesis. It randomly choses among: SMALLER, LARGER, BEFORE, ON, SINCE, SENTBEFORE, SENTON, SENTSINCE, SUBJECT, TEXT, BODY ||
|| SORT || Sort || 0 || SORT (SUBJECT) US-ASCII for ALL or FLAGGED randomly ||
|| THREAD || Thre || 0 || THREAD REFERENCES US-ASCII ALL ||
|| COPY || Copy || 33,5 || COPY random number of messages ||
|| STORE || Stor || 50 || STORE <random-range> [+-]FLAGS[.SILENT] <random flags and keywords>. Only $Label1..5 are used as keywords. SILENT is used if checkpointing is disabled. \Deleted flags aren't set. ||
|| DELETE || Dele || 100 || STORE <random-range> +FLAGS[.SILENT] \Deleted ||
|| EXPUNGE || Expu || 100 || EXPUNGE ||
|| APPEND || Appe || 100,5 || APPEND messages to mailbox. MULTIAPPEND extension is used if possible. The counter shows number of APPEND commands, so with MULTIAPPEND it doesn't match the actual number of appended messages. ||
|| NOOP || Noop || 0 || NOOP command. ||
|| IDLE || Idle || 0 || IDLE command. The finishing DONE is sent before the next command. This doesn't add any extra waits/delays. ||
|| CHECK || Chec || 0 || CHECK command. ||
|| LOGOUT || Logo || 100 || LOGOUT command. ||
|| DISCONNECT || Disc || 0 || Disconnect without LOGOUT. ||
|| DELAY || Dela || 0 || random 0..999 millisecond delay ||
|| CHECKPOINT! || ChkP || 0 || Use checkpoint parameter to change this. The counter shows number of client connections successfully checkpointed ||
Moved to https://dovecot.github.io/imaptest/states.html

None: ImapTest/States (last edited 2023-11-07 21:13:41 by TimoSirainen)