1smtpscript
2==========
3
4smtpscript is a tool to write SMTP scenarios and easily implement regression tests for SMTP server-side implementations.
5
6A smtpscript will look like:
7
8
9    # this is a function init-helo that we want to call in all our regress tests
10    proc init-helo {
11        expect smtp ok
12        writeln "HELO regress"
13        expect smtp helo
14    }
15
16    # each of the test-case will be called sequentially
17    test-case name "mailfrom.empty" {
18        call init-helo
19        writeln "MAIL FROM:<>"
20        expect smtp ok
21    }
22
23    test-case name "mailfrom.broken" {
24        call init-helo
25        writeln "MAIL FROM:< @bleh>"
26        expect smtp permfail
27    }
28
29
30which once executed, produces the output:
31
32    $ smtpscript foo
33    ===> running test-case "mailfrom.empty" ok
34    ===> running test-case "mailfrom.broken" ok
35    ===> all run
36    passed: 2/2 (skipped: 0, failed: 0, error: 0)
37    $
38
39
40The scripting language also supports TLS, randomization and loops, so fairly complex scenarios can be achieved.
41