================================================================= Source code structuration and Unit Tests ================================================================= You will find here general information on code directories structure, unit tests associated to the different kind of classes, and how to run the unit tests. +-------------------------------------------+ | **WORK in PROGRESS, INCOMPLETE DOCUMENT** | +-------------------------------------------+ 1. SALOME KERNEL source code structuration ========================================== 1.1 General structure of KERNEL_SRC ----------------------------------- KERNEL_SRC Some README files and configuration tools for build KERNEL_SRC/adm_local Part of the configuration files KERNEL_SRC/bin Python and shell scripts used at run time. KERNEL_SRC/doc Kit for end user documentation production: public interfaces, graphic, Python, CORBA. Developper documentation. KERNEL_SRC/examples To be removed. KERNEL_SRC/idl All CORBA interfaces from KERNEL are regrouped here. KERNEL_SRC/resources Configuration files for servers (examples). Icons for Graphic interface (to be removed ?) KERNEL_SRC/salome_adm Makefile includes and configuration files (M4 macros) KERNEL_SRC/src The source code (C++ and Python) 1.2 Directory src: C++ and Python source code --------------------------------------------- 1.2.1 Basic services non related to CORBA ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Basics A set of general purpose C++ services. SALOMELocalTrace A multithread trace system that allows message tracing on standard error or a file. CASCatch Exceptions and signal handler. HDFPersist A C++ interface to HDF. 1.2.2 Basic CORBA services ~~~~~~~~~~~~~~~~~~~~~~~~~~ Logger A CORBA server that collects the trace messages from differents CORBA process. SALOMETraceCollector A multithread trace system derived from SALOMELocalTrace, that sends messages to Logger server via CORBA. Utils A set of general purpose services related to CORBA, such as basic CORBA exception system. NamingService C++ and Python interfaces to name, store and retrieve CORBA objects GenericObj A generic CORBA interface for CORBA objects, to count distributed references, and to allow destruction by client. 1.2.3 Miscellaneous CORBA servers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Registry ModuleCatalog DataTypeCatalog RessourcesCatalog ResourcesManager Notification NOTIFICATION_SWIG 1.2.4 CORBA Containers for SALOME Modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Container TestContainer LifeCycleCORBA LifeCycleCORBA_SWIG 1.2.5 STUDY server and related interfaces and tools ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SALOMEDSClient TOOLSDS SALOMEDSImpl SALOMEDS 2. Tools and principles used for Unit testing ============================================= **TO BE COMPLETED** Unit Testing rely on cppunit package for C++ testing, and on unittest module for Python. See these products for general principles of unit testing. The cppunit package is optional. When the prerequisite is detected, the unit tests are compiled. Unit Tests sources are in directories Test under the src/directories containing the classes to test. Test are ordered following the order of directories given above. Tests can be run as a whole, or for a particular directory. In this case, only a partial test is run (the classes to test, and the classes used, i.e. the preceding test directories). Today, only some tests are written as an example. There are not yet python scripts in KERNEL_SRC, but it's a matter of days, there are working scripts to test LifeCycleCORBA_SWIG interface.