summaryrefslogtreecommitdiff
path: root/ngircd/src/testsuite/README
diff options
context:
space:
mode:
Diffstat (limited to 'ngircd/src/testsuite/README')
-rw-r--r--ngircd/src/testsuite/README100
1 files changed, 100 insertions, 0 deletions
diff --git a/ngircd/src/testsuite/README b/ngircd/src/testsuite/README
new file mode 100644
index 0000000..33855fb
--- /dev/null
+++ b/ngircd/src/testsuite/README
@@ -0,0 +1,100 @@
+
+ ngIRCd - Next Generation IRC Server
+
+ (c)2001-2008 Alexander Barton,
+ alex@barton.de, http://www.barton.de/
+
+ ngIRCd is free software and published under the
+ terms of the GNU General Public License.
+
+ -- README for the Test Suite --
+
+
+I. Overview
+~~~~~~~~~~~
+
+The purpose of the "test suite" contained in this directory is to detect
+bugs and incompatibilities in ngIRCd introduced during coding and after
+building ngIRCd on a specific platform.
+
+To run the "standard" tests call "make check" (which runs "make check" in
+all the source directories, testing the "portab" library as well for example)
+or "make testsuite" (which only runs the tests in this directory). Both will
+build ngIRCd (if required) and run some tests on it. These tests should be
+portable and run on all supported platforms without errors.
+
+NOTE #1: most tests of this suite depend on the external tools expect(1)
+and telnet(1), so make sure you have them installed. If not, the tests will
+not fail but simply be skipped.
+
+NOTE #2: the two test servers started by this test suite are configured to
+run on port 6789 and 6790; so it will fail if one or both of these ports
+are already used by some other daemons!
+
+
+II. Shell Scripts
+~~~~~~~~~~~~~~~~
+
+getpid.sh <name>
+
+ This script is used to detect the PID of the running process with
+ the given name in a portable manner. The result is echoed on the
+ console. It is a helper script for some other scripts of this suite.
+
+start-server.sh [<id>]
+
+ start-server.sh starts up the test binary, "T-ngircd<id>" (the default
+ for <id> is 1) with configuration file "ngircd-test<id>.conf" and the
+ console output redirected to "ngircd-test<id>.log".
+ The script first makes sure that getpid.sh is available and working,
+ and that no other instance of the test binary is already running.
+ The exit code is 0 if the test binary could be started.
+
+stop-server.sh [<id>]
+
+ This script uses getpid.sh to detect a running test binary
+ "T-ngircd<id>" and then shuts it down using the TERM signal.
+ The exit code is 0 if the test binary could be stopped.
+
+stress-server.sh [<clientCount> [<maxConcurrent>]]
+
+ stress-server.sh starts <clientCount> clients that "stress" the
+ running test server (id 1); but no more than <maxConcurrent> clients
+ are started at the same moment.
+
+tests.sh
+
+ Most of the tests scripts are symlinked to tests.sh, which in turn
+ uses expect(1) to run the respective script <name>.e and checks
+ its exit code.
+
+test-loop.sh [<loops> [<wait>]]
+
+ This script runs all the tests <loops> times (default: 5) and pauses
+ <wait> seconds (default: 5) between runs.
+ It isn't used by "make check" or "make testsuite".
+
+wait-tests.sh [<max>]
+
+ stress-server.sh uses this script to ensure that no more than <max>
+ clients are connected to the test server (id 1).
+
+
+III. Scripts for expect(1)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+channel-test.e
+check-idle.e
+connect-test.e
+invite-test.e
+join-test.e
+kick-test.e
+message-test.e
+misc-test.e
+mode-test.e
+opless-channel-test.e
+server-link-test.e
+stress-A.e
+stress-B.e
+who-test.e
+whois-test.e