summaryrefslogtreecommitdiff
path: root/doc/README.rts
blob: 60ef73b411a7a34f3b9d368afd76f4ad3c63af1c (plain)
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).