Salome HOME
Restore registering CORBA objects, removed by previous wrong commit
[modules/kernel.git] / bin / appli_gen.py
index 9604eecf815c4d5de9e8f924a9b9b4a3a17d6dda..4c64c7a79b8a234254d55d6ee4ba961521a7ad48 100644 (file)
@@ -1,6 +1,6 @@
 #! /usr/bin/env python
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -47,6 +47,8 @@ system_conf_tag  = "system_conf"
 modules_tag = "modules"
 module_tag  = "module"
 samples_tag = "samples"
+extra_tests_tag = "extra_tests"
+extra_test_tag = "extra_test"
 resources_tag = "resources"
 
 # --- names of attributes in XML configuration file
@@ -65,6 +67,7 @@ class xml_parser:
         self.config = {}
         self.config["modules"] = []
         self.config["guimodules"] = []
+        self.config["extra_tests"] = []
         parser = xml.sax.make_parser()
         parser.setContentHandler(self)
         parser.parse(fileName)
@@ -118,6 +121,15 @@ class xml_parser:
                 self.config["guimodules"].append(nam)
                 pass
             pass
+        # --- if we are analyzing "extra_test" element then store its "name" and "path" attributes
+        elif self.space == [appli_tag,extra_tests_tag,extra_test_tag] and \
+            nam_att in attrs.getNames() and \
+            path_att in attrs.getNames():
+            nam = attrs.getValue( nam_att )
+            path = attrs.getValue( path_att )
+            self.config["extra_tests"].append(nam)
+            self.config[nam]=path
+            pass
         pass
 
     def endElement(self, name):
@@ -182,6 +194,13 @@ def install(prefix, config_file, verbose=0):
             print cle, val
             pass
 
+    # Remove CTestTestfile.cmake; this file will be filled by successive calls to link_module and link_extra_test
+    try:
+      ctest_file = os.path.join(home_dir, 'bin', 'salome', 'test', "CTestTestfile.cmake")
+      os.remove(ctest_file)
+    except:
+      pass
+
     for module in _config.get("modules", []):
         if _config.has_key(module):
             print "--- add module ", module, _config[module]
@@ -195,16 +214,31 @@ def install(prefix, config_file, verbose=0):
             pass
         pass
 
+    for extra_test in _config.get("extra_tests", []):
+        if _config.has_key(extra_test):
+            print "--- add extra test ", extra_test, _config[extra_test]
+            options = params()
+            options.verbose = verbose
+            options.clear = 0
+            options.prefix = home_dir
+            options.extra_test_name = extra_test
+            options.extra_test_path = _config[extra_test]
+            virtual_salome.link_extra_test(options)
+            pass
+        pass
+
+    # Generate CTestCustom.cmake to handle long output
+    ctest_custom = os.path.join(home_dir, 'bin', 'salome', 'test', "CTestCustom.cmake")
+    with open(ctest_custom, 'w') as f:
+      f.write("SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1048576) # 1MB\n")
+      f.write("SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1048576) # 1MB\n")
+
     appliskel_dir = os.path.join(home_dir, 'bin', 'salome', 'appliskel')
 
     for fn in ('envd',
                'getAppliPath.py',
                'kill_remote_containers.py',
-               'runAppli',           # OBSOLETE (replaced by salome)
-               'runConsole',         # OBSOLETE (replaced by salome)
                'runRemote.sh',
-               'runSalomeScript',    # OBSOLETE (replaced by salome)
-               'runSession',         # OBSOLETE (replaced by salome)
                'salome',
                'update_catalogs.py',
                '.bashrc',