1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
SPF Testing System
The SPF Testing System is a collection of perl scripts, unix shell
scripts (used to run the perl scripts) and test data files. It is
designed to see how well an SPF implementation conforms to the official
SPF specification, how well it conforms to the common API used by
several different SPF implementations, and to catch many common bugs.
It is far from complete in all respects and more tests will likely be
added in the future.
**** Test harness ****
Programs:
test.pl This is the perl program that does the actual
checking for all data sets. Run test.pl -h
to find out how to make further use of
test.pl
test This is a shell script wrapper around
test.pl which simply abbreviates the output.
**** Parser/verification tests ****
These tests are designed to make sure the SPF implementations
correctly parse SPF records and detect syntax errors. This is the
kind of thing that many of the web based "SPF wizards" and verifiers
should be tested on.
At this time, only the PHP and libspf2 implementations are able to
do these kinds of checks, and the PHP is not able to run this test
suite.
Information about the format of the datafiles can be found in
test_parse.txt
Datafiles:
test_parser.txt This datafile contains constructed SPF records
designed to test the implementation's parser.
It is designed to detect corner cases and
things that I suspected might catch bugs in
libspf2.
test_adopt_roll.txt This datafile contains (munged) SPF records
that have been registered on the SPF Adoption
Roll. It gives SPF implementors an idea of
the real-world garbage that can be found in
SPF records.
Programs:
run_single_parser This is a shell script that checks the
test_parser.txt datafile.
run_single_adopt_roll This is a shell script that checks the
test_adopt_roll.txt datafile.
**** SPF evaluation tests ****
These tests are designed to make sure the SPF implementations
correctly evaluate SPF records and DNS errors.
At this time, only the Perl, libspf and libspf2 implementations are
able to run these checks.
Information about the format of the datafiles can be found in
test.txt
Datafiles:
test_live.txt This datafile contains constructed SPF queries
that designed to test the implementation's
ability to correctly evaluate SPF records. It
contains tests to make sure the implementation
conforms to the SPF specification, and the
common SPF API. (Yes, these two should be
separated.)
test_rfc_examples.txt This datafile contains SPF queries that are
found in the SPF specification document. The
"Expanded Examples" are currently not in this
dataset. Currently, only the libspf-alt
implementation can run this test because it
requires overriding SPF information for
example.{com,org,net}.
Programs:
run_single_live This is a shell script that checks the
test_live.txt datafile, one query at a time.
run_many_live This is a shell script that checks the
test_live.txt datafile sending many queries to
spfquery. This tests to make sure that the
SPF implementation correctly cleans up after
each individual query.
run_single_rfc_examples This shell script checks the tests from the
rfc_examples.txt datafile, one query at a time.
|