Salome HOME
merge from branch BR_V5_DEV
[modules/yacs.git] / src / UnitTests / UnitTests.py
1 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 #
6 #  This library is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU Lesser General Public
8 #  License as published by the Free Software Foundation; either
9 #  version 2.1 of the License.
10 #
11 #  This library is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 #  Lesser General Public License for more details.
15 #
16 #  You should have received a copy of the GNU Lesser General Public
17 #  License along with this library; if not, write to the Free Software
18 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 #
20 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 #
22 import sys, os,signal,string,commands
23 import runSalome
24 import setenv
25 import orbmodule
26 import TestKiller
27
28 # get SALOME environment :
29
30 args, modules_list, modules_root_dir = setenv.get_config()
31 setenv.set_env(args, modules_list, modules_root_dir)
32
33 # set environment for trace in logger
34 # (with file, servers may be killed before the write to the file...)
35
36 #os.environ["SALOME_trace"] = "file:/tmp/traceUnitTest.log"
37 #os.environ["SALOME_trace"] = "local"
38 os.environ["SALOME_trace"] = "with_logger"
39
40 # launch CORBA naming server
41
42 clt=orbmodule.client()
43
44 # launch CORBA logger server
45
46 myServer=runSalome.LoggerServer(args)
47 myServer.run()
48 clt.waitLogger("Logger")
49
50 # launch notify server
51
52 myServer=runSalome.NotifyServer(args,modules_root_dir)
53 myServer.run()
54
55 # launch registry server
56
57 myServer=runSalome.RegistryServer(args)
58 myServer.run()
59 clt.waitNS("/Registry")
60
61 # launch module catalog server
62
63 cataServer=runSalome.CatalogServer(args)
64 cataServer.setpath(modules_list,modules_root_dir)
65 cataServer.run()
66 clt.waitNS("/Kernel/ModulCatalog")
67
68 # launch container manager server
69
70 myCmServer = runSalome.LauncherServer(args)
71 myCmServer.setpath(modules_list,modules_root_dir)
72 myCmServer.run()
73 clt.waitNS("/SalomeLauncher")
74
75 # execute Unit Test
76
77 command = ['UnitTests']
78 ret = os.spawnvp(os.P_WAIT, command[0], command)
79
80 # kill containers created by the Container Manager
81
82 import Engines
83 launcher = clt.waitNS("/SalomeLauncher",Engines.SalomeLauncher)
84 launcher.Shutdown()
85
86 # kill Test process 
87
88 TestKiller.killProcess(runSalome.process_id)