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