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