Salome HOME
Merge remote branch 'origin/V7_dev'
authorvsr <vsr@opencascade.com>
Tue, 24 May 2016 15:48:59 +0000 (18:48 +0300)
committervsr <vsr@opencascade.com>
Tue, 24 May 2016 15:48:59 +0000 (18:48 +0300)
22 files changed:
CMakeLists.txt
adm/cmake/SalomeSetupPlatform.cmake [changed mode: 0755->0644]
doc/execxml.rst
src/CTestTestfileInstall.cmake
src/engine/Executor.cxx
src/engine/Proc.cxx
src/evalyfx/YACSEvalSessionInternal.cxx
src/evalyfx/YACSEvalSessionInternal.hxx
src/evalyfx_swig/test3.py
src/genericgui/CMakeLists.txt
src/pmml/Test/CMakeLists.txt
src/pmml/Test/CTestTestfileInstall.cmake [new file with mode: 0644]
src/pmml/pmml_swig/CMakeLists.txt
src/pmml/pmml_swig/PMMLBasicsTestLauncher.py [new file with mode: 0755]
src/salomegui/CMakeLists.txt
src/salomewrap/CMakeLists.txt
src/yacsloader/Test/CTestTestfileInstall.cmake
src/yacsloader/Test/YacsLoaderTest.sh.in
src/yacsloader/driver.cxx
src/yacsloader/pmml/CMakeLists.txt
src/yacsloader/pmml/PmmlExeTest.sh.in
src/yacsloader_swig/Test/YacsLoaderTest.sh.in

index 12a016d2c74e0f0b7b00ec309a34d4f669e21b4a..68603fd0a8a46f2eb42da62633b28bf514181c95 100644 (file)
@@ -29,12 +29,12 @@ CMAKE_POLICY(SET CMP0003 NEW)
 # Project name, upper case
 STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
 
-SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 8)
+SET(${PROJECT_NAME_UC}_MAJOR_VERSION 8)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 0)
 SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
 SET(${PROJECT_NAME_UC}_VERSION
   ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
-SET(${PROJECT_NAME_UC}_VERSION_DEV 0)
+SET(${PROJECT_NAME_UC}_VERSION_DEV 1)
 
 # Find KERNEL (optional)
 # ==============
@@ -160,8 +160,12 @@ ENDIF()
 IF(SALOME_BUILD_GUI)
   # Graphviz
   FIND_PACKAGE(SalomeGraphviz  REQUIRED)
-  # Qt4
-  FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui)
+  # Qt
+  IF(NOT SALOME_GUI_BUILD_WITH_QT5)
+    FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui)
+  ELSE()
+    FIND_PACKAGE(SalomeQt5 REQUIRED)
+  ENDIF()
 ENDIF(SALOME_BUILD_GUI)
 
 ##
@@ -310,18 +314,26 @@ EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets}
 #      Ensure the variables are always defined for the configure:
 SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}")
 SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}")
-SET(QT4_ROOT_DIR "${QT4_ROOT_DIR}")
+IF(NOT SALOME_GUI_BUILD_WITH_QT5)
+  SET(QT_ROOT_DIR "${QT4_ROOT_DIR}")
+ELSE()
+  SET(QT_ROOT_DIR "${QT5_ROOT_DIR}")
+ENDIF()
  
 SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include")
 
 # Build variables that will be expanded when configuring Salome<MODULE>Config.cmake:
-SALOME_CONFIGURE_PREPARE(Qt4)
+IF(NOT SALOME_GUI_BUILD_WITH_QT5)
+  SALOME_CONFIGURE_PREPARE(Qt4)
+ELSE()
+  SALOME_CONFIGURE_PREPARE(Qt5)
+ENDIF()
 
 CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in 
     ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
     INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}"
     PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX
-    KERNEL_ROOT_DIR GUI_ROOT_DIR QT4_ROOT_DIR)
+    KERNEL_ROOT_DIR GUI_ROOT_DIR QT_ROOT_DIR)
 
 #   - in the install tree (VSR 16/08/2013: TEMPORARILY COMMENT THIS - TO REMOVE?):
 #       Get the relative path of the include directory so 
@@ -331,7 +343,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in
 #    ${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake
 #    INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}"
 #    PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX 
-#    KERNEL_ROOT_DIR GUI_ROOT_DIR QT4_ROOT_DIR)
+#    KERNEL_ROOT_DIR GUI_ROOT_DIR QT_ROOT_DIR)
 
 WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
     VERSION ${${PROJECT_NAME_UC}_VERSION}
old mode 100755 (executable)
new mode 100644 (file)
index 0dd0d2b..ebff56e
@@ -166,9 +166,6 @@ IF(NOT WIN32)
   ENDIF()
 ENDIF()
 
-IF(NOT DEFINED NO_CXX11_SUPPORT)
-  SET(NO_CXX11_SUPPORT ON)
-ENDIF()
 IF(NOT NO_CXX11_SUPPORT)
   # C++11 support
   INCLUDE(CheckCXXCompilerFlag)
index cddd6e2ba32355b3091320154328365bf6a8438b..fc0a0855c4d3b70e974d0b38e13e58fcf0467636 100644 (file)
@@ -30,6 +30,8 @@ The YACS supervisor in console (driver) mode accepts a few options to set parame
     -e, --dump-on-error[=file] Stop on first error and dump state
     -f, --dump-final[=file]    dump final state
     -g, --dump[=nbsec]         dump state
+    -i, --init_port[=value]    Initialisation value of a port, specified as
+                               bloc.node.port=value.
     -k, --kill-port=port       Kill Salome application running on the specified
                                port if the driver process is killed (with SIGINT
                                or SIGTERM)
@@ -97,6 +99,20 @@ Execute a scheme and save the state of execution every 30 seconds
 
   driver -g30 -fmystate.xml schema.xml
 
+Change the values of some input ports before execution
+----------------------------------------------------------------------
+::
+
+  driver -imynode.i=5 -imynode.d=.7 -imynode.b=False -imynode.s=lili schema.xml
+
+In this example, the ports "i", "d", "b" and "s" of the node "mynode" are initialized and the schema is launched.
+
+Only the ports of the following types can be initialized this way:
+
+ - int
+ - double
+ - bool
+ - string
 
 How to manage several SALOME sessions
 ----------------------------------------------------------------------
index 40e032f2b43a3d58444db12c6200fc6302e24d5f..71e7e4c8b7f725bde7362914c06d57ef24fc277d 100644 (file)
@@ -30,6 +30,7 @@ SUBDIRS(
     bases
     engine
     runtime
+    pmml
     yacsloader
     yacsloader_swig
     )
index 8095fe24b870cbd3779e8cc663e1c5fe619dde30..d559230355590a8c16f1147376c84106424800ab 100644 (file)
@@ -72,8 +72,8 @@ using YACS::BASES::Semaphore;
 //#define _DEVDEBUG_
 #include "YacsTrace.hxx"
 
-int Executor::_maxThreads(50);
-size_t Executor::_threadStackSize(1048576); // Default thread stack size is 1MB
+int Executor::_maxThreads(1000);
+size_t Executor::_threadStackSize(262144); // Default thread stack size is 256 kB == 2**18 because threads launched by YACS are lightweight
 
 Executor::Executor():_nbOfConcurrentThreads(0), _semForMaxThreads(_maxThreads),_keepGoingOnFail(false),_DPLScopeSensitive(false)
 {
index c0055d13875f5c39fbea4670e0e12278c3adb9b3..111e25f2efe7d3415d5b5e72af925935ec4cf74f 100644 (file)
@@ -300,18 +300,29 @@ std::string Proc::setInPortValue(std::string nodeName, std::string portName, std
               double val = atof(value.c_str());
               inputPort->edInit(val);
             }
+            break;
           case Int:
             {
               int val = atoi(value.c_str());
               inputPort->edInit(val);
             }
+            break;
           case String:
             inputPort->edInit(value.c_str());
+            break;
           case Bool:
             {
-              bool val = (! value.compare("False") ) && (! value.compare("0") );
-              inputPort->edInit(val);
+              if((!value.compare("False")) || (!value.compare("false")))
+                inputPort->edInit(false);
+              else if ((!value.compare("True")) || (!value.compare("true")))
+                inputPort->edInit(true);
+              else
+              {
+                int val = atoi(value.c_str());
+                inputPort->edInit(val);
+              }
             }
+            break;
           default:
             DEBTRACE("Proc::setInPortValue: filtered type: " << inputPort->edGetType()->kind());
         }
index cfa5442b1369ea4c831c69fcacce010c963ee583..d5bf80b158e71430e136addc208ffe6b301ffa0b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2012-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -15,7 +15,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-// 
+//
 // Author : Anthony Geay (EDF R&D)
 
 #include "YACSEvalSessionInternal.hxx"
index cdbf402c633ef81d0f5feae92cee276a33330237..141c682999086b60148de4b3d4796789a5c9ea87 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2012-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2012-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -15,7 +15,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-// 
+//
 // Author : Anthony Geay (EDF R&D)
 
 #ifndef __YACSEVALSESSIONINTERNAL_HXX__
index 82e087de6a9e4e7ae73b44184b2b9c8046989fe0..9fd10cc45564e6cd715831476d45ef94e5a7922f 100644 (file)
@@ -1,3 +1,22 @@
+# Copyright (C) 2015-2016  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
 # first test using cluster
 
 import os,getpass
index 6ca7a67f094a55ae52c31d44b8f209e33ce26ce0..3525093bc0a186649cbc5b84aee82a565c306d5e 100644 (file)
@@ -17,6 +17,8 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
+INCLUDE(UseQtExt)
+
 # --- options ---
 
 # additional include directories
@@ -160,12 +162,12 @@ SET(_moc_HEADERS
   )
 
 # header files / uic wrappings
-QT4_WRAP_UI(_uic_HEADERS ${_uic_files})
+QT_WRAP_UIC(_uic_HEADERS ${_uic_files})
 
 # --- sources ---
 
 # sources / moc wrappings
-QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS})
+QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
 
 SET(GenericGui_SOURCES
   GenericGuiExport.hxx
index fc4c3fa2e6b0a31404b4cd5cb451a078085ba542..0e306c83ffccc039a4e886a03ef72e12fee42e2f 100755 (executable)
@@ -97,3 +97,10 @@ ADD_TEST(TestPMML TestPMML)
 
 FILE(COPY ${PROJECT_SOURCE_DIR}/src/pmml/Test/samples  DESTINATION . )
 INSTALL(TARGETS TestPMML DESTINATION ${SALOME_INSTALL_BINS})
+
+#
+
+SET(LOCAL_TEST_DIR ${SALOME_YACS_INSTALL_TEST}/pmml)
+FILE(COPY ${PROJECT_SOURCE_DIR}/src/pmml/Test/samples DESTINATION "${CMAKE_INSTALL_PREFIX}/${LOCAL_TEST_DIR}")
+INSTALL(TARGETS TestPMML DESTINATION ${LOCAL_TEST_DIR})
+INSTALL(FILES CTestTestfileInstall.cmake DESTINATION ${LOCAL_TEST_DIR} RENAME CTestTestfile.cmake)
diff --git a/src/pmml/Test/CTestTestfileInstall.cmake b/src/pmml/Test/CTestTestfileInstall.cmake
new file mode 100644 (file)
index 0000000..0b19971
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright (C) 2015-2016  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+IF(NOT WIN32)
+  ADD_TEST(YacsTestPMML TestPMML)
+  SET_TESTS_PROPERTIES(YacsTestPMML PROPERTIES LABELS "${COMPONENT_NAME}")
+  ADD_TEST(YacsPMMLBasicsTest python pmml_swig/PMMLBasicsTestLauncher.py)
+  SET_TESTS_PROPERTIES(YacsPMMLBasicsTest PROPERTIES LABELS "${COMPONENT_NAME}")
+ENDIF(NOT WIN32)
index 3ab347925061adfb6ef9dcf1bd6aef8b6fc2937e..39b24d4bb2ede9df80d5cc3c8d891a03c820dbf0 100755 (executable)
@@ -69,3 +69,9 @@ INSTALL(FILES PMMLBasicsTest.py DESTINATION ${SALOME_INSTALL_SCRIPT_PYTHON})
 SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
 ADD_TEST(PMMLBasicsTest ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/PMMLBasicsTest.py)
 SET_TESTS_PROPERTIES(PMMLBasicsTest PROPERTIES ENVIRONMENT "${tests_env}")
+
+#
+
+SET(LOCAL_TEST_DIR ${SALOME_YACS_INSTALL_TEST}/pmml/pmml_swig)
+FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/PMMLBasicsTest.py DESTINATION "${CMAKE_INSTALL_PREFIX}/${LOCAL_TEST_DIR}")
+FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/PMMLBasicsTestLauncher.py DESTINATION "${CMAKE_INSTALL_PREFIX}/${LOCAL_TEST_DIR}")
diff --git a/src/pmml/pmml_swig/PMMLBasicsTestLauncher.py b/src/pmml/pmml_swig/PMMLBasicsTestLauncher.py
new file mode 100755 (executable)
index 0000000..836d6ab
--- /dev/null
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2016  CEA/DEN, EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+import os,sys,subprocess,shutil
+
+# Here the most beautiful part of test :)
+dirALaCon0="Test"
+dirAlaCon1="samples"
+if not os.path.exists(dirALaCon0):
+    os.mkdir(dirALaCon0)
+if not os.path.exists(os.path.join(dirALaCon0,dirAlaCon1)):
+    os.chdir(dirALaCon0)
+    os.symlink(os.path.join("..",dirAlaCon1),dirAlaCon1)
+    os.chdir("..")
+# GO !
+dn=os.path.dirname(__file__)
+p=subprocess.Popen(["python","PMMLBasicsTest.py"],cwd=dn,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
+a,b=p.communicate()
+ret=p.returncode
+# Clean up the wonderful first part stuf
+shutil.rmtree(dirALaCon0)
+sys.exit(ret)
index 273be1c6cedf77090f3eecf1bb92b358a2899935..676f088c950ff5a5d0bf82b826fdb6a4f2bfe962 100644 (file)
@@ -17,8 +17,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-INCLUDE(UseQt4Ext)
-INCLUDE(${QT_USE_FILE})
+INCLUDE(UseQtExt)
 
 # --- options ---
 
@@ -90,12 +89,12 @@ SET(_moc_HEADERS
   )
 
 # header files / uic wrappings
-QT4_WRAP_UI(_uic_HEADERS ${_uic_files})
+QT_WRAP_UIC(_uic_HEADERS ${_uic_files})
 
 # --- sources ---
 
 # sources / moc wrappings
-QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS})
+QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
 
 SET(YACS_SOURCES
   Yacsgui.cxx
@@ -113,7 +112,7 @@ TARGET_LINK_LIBRARIES(YACS ${_link_LIBRARIES})
 INSTALL(TARGETS YACS EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
 
 INSTALL(FILES ${YACS_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
-QT4_INSTALL_TS_RESOURCES("${YACS_RESOURCES}" "${SALOME_YACS_INSTALL_RES_DATA}")        
+QT_INSTALL_TS_RESOURCES("${YACS_RESOURCES}" "${SALOME_YACS_INSTALL_RES_DATA}") 
 
 INSTALL(FILES ${_res_files} DESTINATION ${SALOME_YACS_INSTALL_RES_DATA})
 SALOME_CONFIGURE_FILE(resources/YACSCatalog.xml.in 
index b9ea9921eba11720c7a2c0f072cfcd6a8dcfb466..e2fc04273a5d078b17a2044205413a07ae047c27 100644 (file)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-INCLUDE(${QT_USE_FILE})
+INCLUDE(UseQtExt)
 
 # --- options ---
 
 # additional include directories
 INCLUDE_DIRECTORIES(
   ${OMNIORB_INCLUDE_DIR}
-  ${QT_INCLUDE_DIR}
   ${KERNEL_INCLUDE_DIRS}
   ${GUI_INCLUDE_DIRS}
   ${PROJECT_SOURCE_DIR}/src/bases
@@ -65,7 +64,7 @@ SET(_moc_HEADERS
 # --- sources ---
 
 # sources / moc wrappings
-QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS})
+QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
 
 SET(SalomeWrap_SOURCES
   SalomeWrapExport.hxx
index 263036a03af8695cbe0aca1541436e138fb14637..8c9e72a4099fadd810b79af6eee89f50919e0712 100644 (file)
 #
 
 IF(NOT WIN32)
+  SET(SHELL /bin/sh)
   ADD_TEST(YacsLoaderTest python ${SALOME_TEST_DRIVER} ${TIMEOUT} ./runYacsLoaderTest.sh)
   SET_TESTS_PROPERTIES(YacsLoaderTest PROPERTIES
                                      LABELS "${COMPONENT_NAME}"
-                                     ENVIRONMENT "LD_LIBRARY_PATH=${YACS_TEST_LIB}:$ENV{LD_LIBRARY_PATH}"
-                      )
+                                     ENVIRONMENT "LD_LIBRARY_PATH=${YACS_TEST_LIB}:$ENV{LD_LIBRARY_PATH}")
+  ADD_TEST(YacsPmmlExeTest ${SHELL} ./PmmlExeTest.sh)
+  SET_TESTS_PROPERTIES(YacsPmmlExeTest PROPERTIES LABELS "${COMPONENT_NAME}")
 ENDIF()
index 341a6183a341ee8baf0b37e296ac0bd85bcc98f5..d0aba94e4b619c1ffc1a642c0baa603e236d7530 100755 (executable)
@@ -49,7 +49,7 @@ EOF
   # --- launch in background a SALOME session (servers)
 
   ln -fs @CMAKE_SOURCE_DIR@/src/yacsloader/samples .
-  ./runAppli > log1 2>&1
+  ./salome > log1 2>&1 &
 
   # --- wait a little to let the background process define
   #     the CORBA naming service port and host
@@ -59,13 +59,13 @@ EOF
   # --- execute the test script in SALOME session environment
 
   chmod +x @CMAKE_CURRENT_BINARY_DIR@/YacsLoaderInSessionTest.sh
-  ./runSession @CMAKE_CURRENT_BINARY_DIR@/YacsLoaderInSessionTest.sh
+  ./salome shell @CMAKE_CURRENT_BINARY_DIR@/YacsLoaderInSessionTest.sh
   ret=$?
 
   # ---------------------------------------------------------------------------
 
   kill -9 `cat "/tmp/YACSTEST_PidEcho"`
-  ./runSession killSalome.py
+  ./salome shell python killSalome.py
 
   echo "exec status YacsLoaderInSessionTest.sh "  $ret
 
index 100e08a183e75a2ea258ccd10b1130f94b49d505..cd2096b3aa1483cfa0d8b2f8e460de6f94dfb662 100644 (file)
@@ -39,6 +39,7 @@
 #include <iostream>
 #include <fstream>
 #include <signal.h>
+#include <list>
 
 #ifdef WIN32
 #else
@@ -72,6 +73,7 @@ static struct argp_option options[] =
     {"shutdown",        't', "level", 0,                   "Shutdown the schema: 0=no shutdown to 3=full shutdown (default 1)"},
     {"reset",           'r', "level", 0,                   "Reset the schema before execution: 0=nothing, 1=reset error nodes to ready state (default 0)"},
     {"kill-port",       'k', "port",  0,                   "Kill Salome application running on the specified port if the driver process is killed (with SIGINT or SIGTERM)"},
+    {"init_port",       'i', "value", OPTION_ARG_OPTIONAL, "Initialisation value of a port, specified as bloc.node.port=value."},
     { 0 }
   };
 #endif
@@ -90,6 +92,7 @@ struct arguments
   int shutdown;
   int reset;
   int killPort;
+  std::list<std::string> init_ports;
 };
 
 typedef struct {
@@ -159,6 +162,10 @@ parse_opt (int key, char *arg, struct argp_state *state)
     case 'k':
       myArgs->killPort = atoi(arg);
       break;
+    case 'i':
+      if (arg)
+        myArgs->init_ports.push_back(std::string(arg));
+      break;
 
     case ARGP_KEY_ARG:
       if (state->arg_num >=1) // Too many arguments.
@@ -271,6 +278,20 @@ sighandler_t setsig(int sig, sighandler_t handler)
 }
 #endif
 
+bool parse_init_port(const std::string& input, std::string& node, std::string& port, std::string& value)
+{
+  bool ok = true;
+  size_t pos_eq = input.find('=');
+  if(pos_eq == std::string::npos || pos_eq == input.size())
+    return false;
+  value = input.substr(pos_eq+1);
+  size_t pos_dot = input.rfind('.', pos_eq);
+  if(!pos_dot || pos_dot == std::string::npos || pos_dot >= pos_eq-1)
+    return false;
+  port = input.substr(pos_dot+1, pos_eq-pos_dot-1);
+  node = input.substr(0, pos_dot);
+  return true;
+}
 
 int main (int argc, char* argv[])
 {
@@ -287,6 +308,7 @@ int main (int argc, char* argv[])
   myArgs.shutdown = 1;
   myArgs.reset = 0;
   myArgs.killPort = 0;
+  myArgs.init_ports.clear();
 
   // Parse our arguments; every option seen by parse_opt will be reflected in arguments.
 #ifdef WIN32
@@ -304,6 +326,11 @@ int main (int argc, char* argv[])
     std::cerr << " dumpErrorFile=" << myArgs.dumpErrorFile << std::endl;
   else
     std::cerr << std::endl;
+  std::list<std::string>::const_iterator it;
+  for(it=myArgs.init_ports.begin(); it != myArgs.init_ports.end(); it++)
+  {
+    std::cerr << (*it) << std::endl;
+  }
 #endif
 
 #ifndef WIN32
@@ -351,6 +378,31 @@ int main (int argc, char* argv[])
           std::cerr << "The imported file is probably not a YACS schema file" << std::endl;
           return 1;
         }
+      // Initialize the ports
+      for(it=myArgs.init_ports.begin(); it != myArgs.init_ports.end(); it++)
+      {
+        std::string node, port, value;
+        if(parse_init_port((*it), node, port, value))
+        {
+          std::cerr << "Initialization node=" << node
+                    << " port=" << port
+                    << " value=" << value << std::endl;
+
+          std::string init_state;
+          init_state = p->setInPortValue(node, port, value);
+          if(value.compare(init_state))
+          {
+            std::cerr << "Error on initialization:" << init_state << std::endl;
+            return 1;
+          }
+        }
+        else
+        {
+          std::cerr << "Error on parsing initialization string:" << (*it) << std::endl;
+          return 1;
+        }
+      }
+      
       //Get the parser logger
       Logger* logger=p->getLogger("parser");
       //Print errors logged if any
index ef3ef6006631746e413ecd73949fd84555e6d307..03564cfea67a9621e58fbe1d96146f8bb056f63a 100755 (executable)
@@ -60,4 +60,9 @@ IF(NOT WIN32)
   SALOME_CONFIGURE_FILE(PmmlExeTest.sh.in PmmlExeTest.sh)  
   SALOME_CONFIGURE_FILE(PmmlInSessionTest.sh.in PmmlInSessionTest.sh)
   ADD_TEST(NAME PmmlExeTest COMMAND ${SHELL} PmmlExeTest.sh)
-ENDIF()
\ No newline at end of file
+ENDIF()
+
+SET(LOCAL_TEST_DIR ${SALOME_YACS_INSTALL_TEST}/yacsloader)
+INSTALL(TARGETS TestYACSPMML DESTINATION ${LOCAL_TEST_DIR})
+INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/PmmlExeTest.sh DESTINATION ${LOCAL_TEST_DIR})
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/config_appli.xml DESTINATION ${LOCAL_TEST_DIR})
index 0d01a824fcef0633c06a9d7958669e4e882a1bd8..3c4ca80e07b336e0623be58e2d4b5e1d8eb2c526 100755 (executable)
@@ -49,7 +49,7 @@ EOF
   # --- launch in background a SALOME session (servers)
 
   ln -fs @CMAKE_SOURCE_DIR@/src/yacsloader/samples .
-  ./runAppli > log1 2>&1
+  ./salome > log1 2>&1 &
 
   # --- wait a little to let the background process define
   #     the CORBA naming service port and host
@@ -59,13 +59,13 @@ EOF
   # --- execute the test script in SALOME session environment
 
   chmod +x @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
-  ./runSession @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
+  ./salome shell @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
   ret=$?
 
   # ---------------------------------------------------------------------------
 
   kill -9 `cat "/tmp/YACSTEST_PidEcho"`
-  ./runSession killSalome.py
+  ./salome shell python killSalome.py
 
   echo "exec status PmmlInSessionTest.sh "  $ret
 
index 9a0076b6a1f0ab5f8d1709e66e03a7b621c6c9cb..d9399aff000aa14df088b37828fa01689c687e27 100755 (executable)
@@ -46,7 +46,7 @@ EOF
   # --- launch in background a SALOME session (servers)
 
   ln -fs @CMAKE_SOURCE_DIR@/src/yacsloader/samples .
-  ./runAppli > log1 2>&1
+  ./salome > log1 2>&1 &
 
   # --- wait a little to let the background process define
   #     the CORBA naming service port and host
@@ -56,13 +56,13 @@ EOF
   # --- execute the test script in SALOME session environment
 
   chmod +x @CMAKE_CURRENT_BINARY_DIR@/YacsLoaderInSessionTest.sh
-  ./runSession @CMAKE_CURRENT_BINARY_DIR@/YacsLoaderInSessionTest.sh
+  ./salome shell @CMAKE_CURRENT_BINARY_DIR@/YacsLoaderInSessionTest.sh
   ret=$?
 
   # ---------------------------------------------------------------------------
 
   kill -9 `cat "/tmp/YACSTEST_PidEcho"`
-  ./runSession killSalome.py
+  ./salome shell python killSalome.py
 
   echo "exec status YacsLoaderInSessionTest.sh "  $ret