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
|
Rudimentary Test System (RTS)
=============================
History
-------
Starting with ucspi-tcp, DJB introduced a script called 'rts.test'
to do some unit/system tests for the modules included in here.
This piece of software was never documented nor its purpose was defined.
William Baxter modified it to work with ucspi-ssl.
DJB used it in the release of djbdns.
Components
----------
Within (slash)package 'rts' consists of the following pieces:
a) package/rts [component] is a generic shell script.
b) src/rts.[it], src/rts.[component] are the scripts containing the specific unit tests.
src/rts.it is usually the supervising script,
while src/rts.base includes typically the 'basic' unit tests,
src/rts.[component] is optional.
c) src/exp.[it], src.[bases] and perhaps src/exp.[component]
include the expected results (adapted).
While [it] and [base] are mandatory, any further [component] needs
to be defined by the (slash)package installation.
Defaults and Adjustments
------------------------
1. In order to use rts, the binaries are expected to be install
at their default directories.
2. Since ucspi-ssl depends on *SSL libraries, the shared libs
shall be available in their default locations.
3. If you use custom installed *SSL libs, you need to modify
the LD_LIBRARY_PATH. See the file rts.base to get the idea.
Invocation
----------
'rts' is typically called after a successful compilation and installation.
The $PATH variable includes the current directory of the executed rts.it (./compile).
In order to test the included modules one calls:
package/rts --> all tests are done (including optional)
package/rts base --> basic unit tests
package/rts [component] --> optional component test
Results
-------
The script rts.[component] is executed in
./compile/rts-temp
to be raised upon call. The results are written to
./compile/out.[component]
and then diff'ed against exp.[component], cleaned up for trivial
run dependencies (like port numbers) and the difference is displayed.
If there is no difference, nothing is displayed => working as expected.
However, even if differences are given, they may be due to environment/call
dependencies (like process ids) resulting in some mangled output.
In case package/rts is called again, the previous results are overwritten.
--eh (May, 2023).
|