Salome HOME
Revert "Synchronize adm files"
[modules/kernel.git] / doc / salome / unittests.dox
1 /*!
2
3 \page UnitTests Source code structuration and Unit Tests
4
5 <b>WORK in PROGRESS, INCOMPLETE DOCUMENT</b>
6
7 You will find here general information on code directories structure,
8 unit tests associated to the different kind of classes, and how to run
9 the unit tests.
10
11 \section S1_unit SALOME KERNEL source code structuration
12
13 \subsection sub11 General structure of KERNEL_SRC
14
15 - KERNEL_SRC :\n
16    Some README files and configuration tools for build
17
18 - KERNEL_SRC/bin :\n
19    Python and shell scripts used at run time.
20    Kit to install a %SALOME Application.
21
22 - KERNEL_SRC/doc :\n
23    Kit for KERNEL end user documentation production:
24    public interfaces, Python, CORBA.
25    Integrator and Developper documentation.
26
27 - KERNEL_SRC/idl :\n
28    All CORBA interfaces from KERNEL are regrouped here.
29
30 - KERNEL_SRC/resources :\n
31    Configuration files for servers (examples).
32    Interfaces definitions for KERNEL test components.
33
34 - KERNEL_SRC/salome_adm :\n
35    Configuration files used by CMake (*.cmake files)
36
37 - KERNEL_SRC/src :\n
38    The source code (C++ and Python)
39
40 \subsection sub12 Directory src: C++ and Python source code
41
42 <ol>
43 <li>
44 <b>Basic services non related to CORBA</b>
45
46 - Basics\n
47   %A set of general purpose C++ services, not related to CORBA.
48   Some general purpose services that are in Utils directory (CORBA related),
49   are progressivley moved here, as they are not related to CORBA.
50   
51
52 - SALOMELocalTrace\n
53   %A multithread trace system that allows message tracing on standard error
54   or a file. 
55
56 - CASCatch\n
57   Exceptions and signal handler.
58
59 - HDFPersist\n
60   %A C++ interface to HDF.
61
62 </li>
63
64 <li>
65 <b>Basic CORBA services</b>
66
67 - Logger :\n
68   %A CORBA %server that collects the trace messages from differents CORBA 
69   process. 
70
71 - SALOMETraceCollector :\n
72   %A multithread trace system derived from SALOMELocalTrace, that sends messages
73   to Logger %server via CORBA.
74
75 - Utils :\n
76   %A set of general purpose services related to CORBA, such as basic CORBA
77   exception system. See also Basics directory above.
78
79 - NamingService :\n
80   C++ and Python interfaces to name, store and retrieve CORBA objects
81
82 - GenericObj :\n
83   %A generic CORBA interface for CORBA objects, to count distributed references,
84   and to allow destruction by client. 
85
86 </li>
87 <li>
88 <b>Miscellaneous CORBA servers</b>
89
90 - %Registry :\n
91   Implements SALOME_registry.idl.
92   Provides a CORBA %server library and a separate %server program.
93
94 - ModuleCatalog :\n
95   Implements SALOME_moduleCatalog.idl.
96   Provide a CORBA %server library and separate %server and client programs.
97
98 - ModuleGenerator :\n
99   Tool to generate a module catalog from CORBA idl
100
101 - ResourcesManager :\n
102   library included in container %server
103
104 - Notification :\n
105   library included in differents servers (container)
106
107 - NOTIFICATION_SWIG
108
109 </li>
110
111 <li>
112 <b>CORBA Containers for %SALOME Modules</b>
113
114 - Container
115
116 - TestContainer
117
118 - LifeCycleCORBA
119
120 - LifeCycleCORBA_SWIG
121
122 </li>
123
124 <li>
125 <b>STUDY %server and related interfaces and tools</b>
126
127 - SALOMEDSClient
128
129 - TOOLSDS
130
131 - SALOMEDSImpl
132
133 - %SALOMEDS
134
135 </li>
136 <li>
137 <b>Python interface to %SALOME</b>
138  
139 - KERNEL_PY
140
141 </li>
142 <li>
143 <b>Efficient CORBA transfer services</b>
144
145 - Communication
146
147 - Communication_SWIG
148
149 </li>
150 <li>
151 <b>%A Parallel container with MPI</b>
152
153 - MPIContainer
154
155 - TestMPIContainer
156
157 </li>
158
159 <li>
160 <b>Unit tests</b>
161
162 - UnitTests
163
164 </li>
165 </ol>
166 </li>
167 </ol>
168
169 \section S2_unit Tools and principles used for Unit testing
170
171 <b>TO BE COMPLETED</b>
172
173 Unit Testing rely on cppunit package for C++ testing, and on unittest module
174 for Python. See these products for general principles of unit testing.
175
176 The cppunit package is optional. When the prerequisite is detected, the unit
177 tests are compiled.
178
179 Unit Tests sources are in directories Test under the src/directories
180 containing the classes to test.
181
182 Test are ordered following the order of directories given above.
183
184 Tests can be run as a whole, or for a particular directory. In this case, only
185 a partial test is run (the classes to test, and the classes used, i.e. the 
186 preceding test directories).
187
188
189 Today, only some tests are written as an example. There are not yet python
190 scripts in KERNEL_SRC, but it's a matter of days, there are working scripts
191 to test LifeCycleCORBA_SWIG interface.
192
193 */