|
|
|
@@ -3678,36 +3678,72 @@ the invariant. The complete native suite subsequently passed all 103 tests.
|
|
|
|
|
IMAP-11 PASS host=127.0.0.1:993 copy=sequence/uid move=sequence/uid/same-mailbox uidplus=copyuid/order/uidnext metadata=flags/keywords/internaldate sets=duplicate/nonexistent examine=copy/read-only-move syntax=trailing-rejected missing=trycreate cleanup=yes
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## IMAP-01 through IMAP-11 Dovecot ImapTest corroboration
|
|
|
|
|
## IMAP-12
|
|
|
|
|
|
|
|
|
|
Result: **PASS**
|
|
|
|
|
|
|
|
|
|
Commit `44ccc52adfd527429e79b7fc5f1e48cfaf708bd2` was installed as the
|
|
|
|
|
Gentoo debug build and tested on 2026-07-29 with Dovecot ImapTest. The
|
|
|
|
|
release subset consists of 26 upstream scripted groups: `atoms`, `append`,
|
|
|
|
|
Commits `f714694b` and `3de6f0da` were installed as the Gentoo GCC 15.3.0
|
|
|
|
|
debug build and tested on 2026-07-29 with
|
|
|
|
|
`contrib/testing/imap-expunge-check.py`. The live test used two simultaneously
|
|
|
|
|
selected sessions and verified ordinary EXPUNGE, selective UID EXPUNGE,
|
|
|
|
|
duplicate and non-existent UIDs, an empty mailbox, read-only rejection, exact
|
|
|
|
|
32-bit non-zero UID-set syntax, unsolicited synchronization, and descending
|
|
|
|
|
sequence-number responses when several messages were removed.
|
|
|
|
|
|
|
|
|
|
The command and parser paths were compared directly with Dovecot 2.4.4
|
|
|
|
|
`src/imap/cmd-expunge.c`, `src/imap/imap-expunge.c`, and
|
|
|
|
|
`src/imap/imap-sync.c`, plus Cyrus IMAP 3.12.3 `imap/imapd.c` and
|
|
|
|
|
`imap/index.c`. Bongo now rejects trailing EXPUNGE arguments, requires exactly
|
|
|
|
|
one UID EXPUNGE set, validates the complete set before inspecting mailbox
|
|
|
|
|
contents, and rejects zero, leading-zero, junk-suffixed, and overflowing UID
|
|
|
|
|
endpoints.
|
|
|
|
|
|
|
|
|
|
The first live run exposed a wider allocator defect: the historical
|
|
|
|
|
`MemCalloc` compatibility macro called `g_malloc` and therefore did not
|
|
|
|
|
zero-initialize selection masks. It now delegates to an overflow-checked
|
|
|
|
|
`g_malloc0` wrapper. A native allocator regression test verifies both zeroing
|
|
|
|
|
and multiplication-overflow rejection. The complete native suite passed all
|
|
|
|
|
105 tests after this repair.
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
IMAP-12 PASS host=127.0.0.1:993 expunge=all/deleted-only/descending uid-expunge=selective/duplicates/nonexistent/empty sessions=two/synchronized read-only=rejected syntax=arguments/uid-set/uint32 cleanup=yes
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Dovecot ImapTest's independent `expunge` group also passed all 22 commands
|
|
|
|
|
against the installed server. The disposable live-test and upstream-test
|
|
|
|
|
mailboxes were removed after their runs.
|
|
|
|
|
|
|
|
|
|
## IMAP-01 through IMAP-12 Dovecot ImapTest corroboration
|
|
|
|
|
|
|
|
|
|
Result: **PASS**
|
|
|
|
|
|
|
|
|
|
Commits through `3de6f0da` were installed as the Gentoo debug build and tested
|
|
|
|
|
on 2026-07-29 with Dovecot ImapTest. The release subset consists of 27
|
|
|
|
|
upstream scripted groups: `atoms`, `append`,
|
|
|
|
|
`close`, `copy`, `fetch`, `fetch-body`, the three nested
|
|
|
|
|
`message/rfc822` body groups, `fetch-body-mime`, `fetch-bodystructure`,
|
|
|
|
|
`fetch-envelope`, `id`, `list`, `listext`, `logout`, `move`, `mutf7`, `nil`,
|
|
|
|
|
`pipeline`, `select`, `store`, `subscribe`, `uidplus`, `uidvalidity`, and
|
|
|
|
|
`uidvalidity-rename`.
|
|
|
|
|
`uidvalidity-rename`, plus `expunge`.
|
|
|
|
|
|
|
|
|
|
The first pass ran every group in a separate ImapTest process with a separate
|
|
|
|
|
disposable mailbox. All 26 groups passed with no missing-capability skips.
|
|
|
|
|
disposable mailbox. All 27 groups passed with no missing-capability skips.
|
|
|
|
|
The second pass ran the same corpus together against one disposable mailbox;
|
|
|
|
|
all 26 groups, 251 base-protocol commands, and 60 extension commands passed.
|
|
|
|
|
all 27 groups, 273 base-protocol commands, and 60 extension commands passed.
|
|
|
|
|
This combination distinguishes primary command failures from cascades while
|
|
|
|
|
also detecting state leakage and command-order interactions.
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
PASS: Dovecot ImapTest imap-01-11 suite (26 scripted test groups, isolated)
|
|
|
|
|
26 test groups: 0 failed, 0 skipped due to missing capabilities
|
|
|
|
|
base protocol: 0/251 individual commands failed
|
|
|
|
|
PASS: Dovecot ImapTest imap-01-12 suite (27 scripted test groups, isolated)
|
|
|
|
|
27 test groups: 0 failed, 0 skipped due to missing capabilities
|
|
|
|
|
base protocol: 0/273 individual commands failed
|
|
|
|
|
extensions: 0/60 individual commands failed
|
|
|
|
|
PASS: Dovecot ImapTest imap-01-11 suite (26 scripted test groups, combined)
|
|
|
|
|
PASS: Dovecot ImapTest imap-01-12 suite (27 scripted test groups, combined)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The run found and verified the CLOSE watcher ordering, nested RFC822 MIME
|
|
|
|
|
offsets, recursive LIST/LSUB attributes, and same-mailbox MOVE UIDNEXT fixes.
|
|
|
|
|
offsets, recursive LIST/LSUB attributes, same-mailbox MOVE UIDNEXT, and strict
|
|
|
|
|
EXPUNGE/UID EXPUNGE fixes.
|
|
|
|
|
Credentials were supplied through a mode-0600 temporary user file. Every
|
|
|
|
|
temporary mailbox and staged corpus was removed on completion.
|
|
|
|
|
|
|
|
|
|