#! /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
python %(prog)s --verbose --prefix=<install directory> --config=<configuration file>
"""
-import argparse
import os
import sys
import shutil
import virtual_salome
import xml.sax
+import optparse
# --- names of tags in XML configuration file
appli_tag = "application"
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
self.config = {}
self.config["modules"] = []
self.config["guimodules"] = []
+ self.config["extra_tests"] = []
parser = xml.sax.make_parser()
parser.setContentHandler(self)
parser.parse(fileName)
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):
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]
options.verbose = verbose
options.clear = 0
options.prefix = home_dir
- options.module = _config[module]
+ options.module_name = module
+ options.module_path = _config[module]
virtual_salome.link_module(options)
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',
- 'runSession', # OBSOLETE (replaced by salome)
'salome',
'update_catalogs.py',
'.bashrc',
os.chmod(users_dir, 0777)
def main():
- parser = argparse.ArgumentParser(usage=usage)
+ parser = optparse.OptionParser(usage=usage)
- parser.add_argument('--prefix', default='.', metavar="<install directory>",
- help="Installation directory (default %(default)s)")
+ parser.add_option('--prefix', dest="prefix", default='.',
+ help="Installation directory (default .)")
- parser.add_argument('--config', default='config_appli.xml',
- metavar="<configuration file>",
- help="XML configuration file (default %(default)s)")
+ parser.add_option('--config', dest="config", default='config_appli.xml',
+ help="XML configuration file (default config_appli.xml)")
- parser.add_argument('-v', '--verbose', action='count',
+ parser.add_option('-v', '--verbose', action='count', dest='verbose',
default=0, help="Increase verbosity")
- options = parser.parse_args()
+ options, args = parser.parse_args()
if not os.path.exists(options.config):
print "ERROR: config file %s does not exist. It is mandatory." % options.config
sys.exit(1)