source: branches/samba-3.5.x/selftest/README

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 4.1 KB
Line 
1# vim: ft=rst
2
3This directory contains test scripts that are useful for running a
4bunch of tests all at once.
5
6There are two parts to this:
7
8 * The test runner (selftest/selftest.pl)
9 * The test formatter
10
11selftest.pl simply outputs subunit, which can then be formatted or analyzed
12by tools that understand the subunit protocol. One of these tools is
13format-subunit.pl, which is used by default as part of "make test".
14
15Available testsuites
16====================
17The available testsuites are obtained from a script, usually
18selftest/samba{3,4}_tests.sh. This script should for each testsuite output
19the name of the test, the command to run and the environment that should be
20provided. Use the included "plantest" function to generate the required output.
21
22Testsuite behaviour
23===================
24
25Exit code
26------------
27The testsuites should exit with a non-zero exit code if at least one
28test failed. Skipped tests should not influence the exit code.
29
30Output format
31-------------
32Testsuites can simply use the exit code to indicate whether all of their
33tests have succeeded or one or more have failed. It is also possible to
34provide more granular information using the Subunit protocol.
35
36This protocol works by writing simple messages to standard output. Any
37messages that can not be interpreted by this protocol are considered comments
38for the last announced test.
39
40Accepted commands are:
41
42test
43~~~~
44test: <NAME>
45
46Announce that a new test with the specified name is starting
47
48success
49~~~~~~~
50success: <NAME>
51
52Announce that the test with the specified name is done and ran successfully.
53
54failure
55~~~~~~~
56failure: <NAME>
57failure: <NAME> [ REASON ]
58
59Announce that the test with the specified name failed. Optionally, it is
60possible to specify a reason it failed.
61
62The alias "fail" will also work.
63
64xfail
65~~~~~
66xfail: <NAME>
67xfail: <NAME> [ REASON ]
68
69Announce that the test with the specified name failed but that the failure
70was expected, e.g. it's a test for a known bug that hasn't been fixed yet.
71Alternatively it is also possible to simply return "failure:" here but
72specify in the samba4-knownfailures file that it is failing.
73
74skip
75~~~~
76skip: <NAME>
77skip: <NAME> [ REASON ]
78
79Announce that the test with the specified name was skipped. Optionally a
80reason can be specified.
81
82time
83~~~~
84time: YYYY-MM-DD HH:mm:ssZ
85
86Announce the current time. This may be used to calculate the duration of
87various tests.
88
89The following are Samba extensions to Subunit:
90
91testsuite-count
92~~~~~~~~~~~~~~~
93testsuite-count: number
94
95Announce the number of tests that is going to be run.
96
97start-testsuite
98~~~~~~~~~
99start-testsuite: name
100
101The testsuite name is used as prefix for all containing tests.
102
103skip-testsuite
104~~~~~~~~~~~~~~
105skip-testsuite: name
106
107Mark the testsuite with the specified name as skipped.
108
109testsuite-success
110~~~~~~~~~~~~~~~~~
111testsuite-success: name
112
113Indicate that the testsuite has succeeded successfully.
114
115testsuite-fail
116~~~~~~~~~~~~~~
117testsuite-fail: name
118
119Indicate that a testsuite has failed.
120
121Environments
122============
123Tests often need to run against a server with particular things set up,
124a "environment". This environment is provided by the test "target": Samba 3,
125Samba 4 or Windows.
126
127The following environments are currently available:
128
129 - none: No server set up, no variables set.
130 - dc: Domain controller set up. The following environment variables will
131 be set:
132
133 * USERNAME: Administrator user name
134 * PASSWORD: Administrator password
135 * DOMAIN: Domain name
136 * REALM: Realm name
137 * SERVER: DC host name
138 * SERVER_IP: DC IPv4 address
139 * NETBIOSNAME: DC NetBIOS name
140 * NETIOSALIAS: DC NetBIOS alias
141
142 - member: Domain controller and member server that is joined to it set up. The
143 following environment variables will be set:
144
145 * USERNAME: Domain administrator user name
146 * PASSWORD: Domain administrator password
147 * DOMAIN: Domain name
148 * REALM: Realm name
149 * SERVER: Name of the member server
150
151
152Running tests
153=============
154
155To run all the tests use::
156
157 make test
158
159To run a quick subset (aiming for about 1 minute of testing) run::
160
161 make quicktest
162
163To run a specific test, use this syntax::
164
165 make test TESTS=testname
166
167for example::
168
169 make test TESTS=samba4.BASE-DELETE
170
Note: See TracBrowser for help on using the repository browser.