test(fls): e-mail account files against Swift's reader

The Swift oracle reads the 43 account files Java read (--email-files, with
TopologyRuntimeEmailStorage.decodeJavaServer and decodeJavaClient). The
accounts the model takes match Swift's except where Swift checks names,
hosts and addresses and fails the whole file on one it rejects, or reads
the format otherwise (the first client line instead of the last, exactly
nine fields, a required messages field). Every departure is named with its
reason; Java's reading is right in each, none is a Java error Swift fixes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 07:40:14 +00:00
co-authored by Claude Opus 5.5
parent 1efbb8a660
commit 956443726b
7 changed files with 910 additions and 2 deletions
+129
View File
@@ -0,0 +1,129 @@
[
[
"mail.gmx.de;mail.gmx.de;110;25;herbert;herbert1234;Schmidt;Herbert;herbert@gmx.de",
{
"email" : "herbert@gmx.de",
"name" : "Herbert Schmidt",
"password" : "herbert1234",
"pop3Host" : "mail.gmx.de",
"pop3Port" : 110,
"smtpHost" : "mail.gmx.de",
"smtpPort" : 25,
"username" : "herbert"
}
],
[
"mail.gmx.de;mail.gmx.de;110;25;herbert;herbert1234;Schmidt;Herbert;herbert@gmx.de\\u000A",
{
"email" : "herbert@gmx.de",
"name" : "Herbert Schmidt",
"password" : "herbert1234",
"pop3Host" : "mail.gmx.de",
"pop3Port" : 110,
"smtpHost" : "mail.gmx.de",
"smtpPort" : 25,
"username" : "herbert"
}
],
[
"a;a;110;25;first;p;L;F;first@x\\u000Ab;b;110;25;second;p;L;F;second@x\\u000A",
{
"email" : "first@x",
"name" : "F L",
"password" : "p",
"pop3Host" : "a",
"pop3Port" : 110,
"smtpHost" : "a",
"smtpPort" : 25,
"username" : "first"
}
],
[
"a;a;110;25;first;p;L;F;first@x\\u000Abroken\\u000A",
{
"email" : "first@x",
"name" : "F L",
"password" : "p",
"pop3Host" : "a",
"pop3Port" : 110,
"smtpHost" : "a",
"smtpPort" : 25,
"username" : "first"
}
],
[
"",
"!invalidAccount(\"missing client account\")"
],
[
"\\u000A",
"!invalidAccount(\"missing client account\")"
],
[
"\\u000A\\u000A\\u000A",
"!invalidAccount(\"missing client account\")"
],
[
"a;b;110;25;u;p;L;F;\\u000A",
"!invalidAddress(\"\")"
],
[
"a;b;110;25;u;p;L;F;u@x;extra\\u000A",
"!invalidAccount(\"malformed client account\")"
],
[
"a;b;110;25;u;p;L;F;u@x\\u000D\\u000A",
{
"email" : "u@x",
"name" : "F L",
"password" : "p",
"pop3Host" : "a",
"pop3Port" : 110,
"smtpHost" : "b",
"smtpPort" : 25,
"username" : "u"
}
],
[
"a;;110;25;u;p;;;u@x\\u000A",
"!invalidHost(\"\")"
],
[
"a;b;110;25;u;p;L;F;u@x\\u000A\\u000A\\u000A",
{
"email" : "u@x",
"name" : "F L",
"password" : "p",
"pop3Host" : "a",
"pop3Port" : 110,
"smtpHost" : "b",
"smtpPort" : 25,
"username" : "u"
}
],
[
"\\u000Aa;b;110;25;u;p;L;F;u@x",
{
"email" : "u@x",
"name" : "F L",
"password" : "p",
"pop3Host" : "a",
"pop3Port" : 110,
"smtpHost" : "b",
"smtpPort" : 25,
"username" : "u"
}
],
[
" a ; b ;x;y; u ; p ; L ; F ; u@x \\u000A",
"!invalidAccount(\"malformed client account\")"
],
[
";;;;;;;;",
"!invalidAccount(\"malformed client account\")"
],
[
";;;;;;;;x",
"!invalidAccount(\"malformed client account\")"
]
]