X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/52a7b5f3f80a515983420bf9986f951186c931a5..3045f0503a6aacfa5feea1c9b67e7950a8c57ee7:/test/README?ds=inline diff --git a/test/README b/test/README index d971bc744..cdc240df0 100644 --- a/test/README +++ b/test/README @@ -79,6 +79,8 @@ In order to run this test suite, the following requirements must be met: and "xyz" and single letters that are used in the tests. The test suite expects the login to have a gecos name; I think it will now run if the gecos field is empty but there may be anomalies. + The login must not contain a dash or an equal sign. (Otherwise some tests + about local_from_{suffix,prefix} will fail.) (4) The directory into which you unpack the test suite must be accessible by the Exim user, so that code running as exim can access the files therein. @@ -112,7 +114,7 @@ In order to run this test suite, the following requirements must be met: is also an IPv6 address, additional tests are run when the Exim binary contains IPv6 support. There are checks in the scripts for a running IPv4 interface; when one is not found, some tests are skipped (with a warning - message). + message). The local net may not be in 10.0/8 as that is used by the suite. (9) Exim must be built with TRUSTED_CONFIG_LIST support, so that the test configs can be placed into it. A suitable file location is .../exim/test/trusted_configs @@ -211,10 +213,12 @@ THE RUNTEST SCRIPT ------------------ If you do not supply any arguments to ./runtest, it searches for an Exim -source tree at the same level as the test suite directory. It then looks for an -Exim binary in a "build" directory of that source tree. If there are several -Exim source trees, it chooses the latest version of Exim. Consider the -following example: +source tree at the same level as the test suite directory. A source tree +is a source tree, if it contains a build-* directory. + +It then looks for an Exim binary in a "build" directory of that source +tree. If there are several Exim source trees, it chooses the latest +version of Exim. Consider the following example: $ ls -F /source/exim exim-4.60/ exim-4.62/ exim-testsuite-x.xx/ @@ -258,6 +262,17 @@ There are some options for the ./runtest script itself: (If it turns out that most people prefer to use diff, I'll change the default.) + -FLAVOR + -FLAVOUR + This allows "overrides" for the test results. It's intended + use is to deal with distro specific differences in the test + output. The default flavour is "foo". If during the test + run differences between the current and the expected output + are found and no flavour file exists already, you may update + the "common" expected output or you may create a flavour + file. If a flavour file already exists, any updates will go + into that flavour file! + -KEEP Normally, after a successful run, the test output files are deleted. This option prevents this. It is useful when running a single test, in order to look at the actual output before it is @@ -885,6 +900,11 @@ example: Finally, "exim" can be preceded by "sudo", to run Exim as root. If more than one of these prefixes is present, they must be in the above order. +If the options include "-DSERVER" but not "-DNOTDAEMON", the script waits for +Exim to start but then continues without waiting for it to terminate. Typically +this will be for a daemon-mode "-bd" operation. The daemon should be later +terminated using "killdaemon". + exim_exim [] [] @@ -1127,8 +1147,15 @@ directory by applying the standard substitutions. The test suite also builds dynamic zone files for the name of the current host and its IP address(es). The idea is that there should not be any need to rely on an external DNS. -The domain names that are handled directly by Exim, without being passed to -fakens, are: +The fakens program handles some names programmatically rather than using the +fake zone files. These are: + + manyhome.test.ex This name is used for testing hosts with ridiculously large + numbers of IP addresses; 2048 IP addresses are generated + and returned. Doing it this way saves having to make the + interface to fakens handle more records that can fit in the + data block. The addresses that are generated are in the + 10.250.0.0/16 network. test.again.dns This always provokes a TRY_AGAIN response, for testing the handling of temporary DNS error. If the full domain name @@ -1137,23 +1164,12 @@ fakens, are: test.fail.dns This always provokes a NO_RECOVERY response, for testing DNS server failures. -This special handling could now be done in the fakens program, but while the -old test suite is still being used it has to be done in Exim itself, so for the -moment it remains there. - The use of gethostbyname() and its IPv6 friends is also subverted when Exim is running in the test harness. The test code handles a few special names directly; for all the others it uses DNS lookups, which are then handled as just described. Thus, the use of /etc/hosts is completely bypassed. The names that are specially handled are: - manyhome.test.ex This name is used for testing hosts with ridiculously large - numbers of IP addresses; 2048 IP addresses are generated - and returned. Doing it this way saves having to make the - interface to fakens handle more records that can fit in the - data block. The addresses that are generated are in the - 10.250.0.0/16 network. - localhost Always returns 127.0.0.1 or ::1, for IPv4 and IPv6 lookups, respectively.