Salome HOME
To make Pmml tests work outside Salome environment
authorilh <ilhelgou@is221556.(none)>
Wed, 3 Sep 2014 07:41:04 +0000 (09:41 +0200)
committerilh <ilhelgou@is221556.(none)>
Wed, 3 Sep 2014 07:41:04 +0000 (09:41 +0200)
src/pmml/pmml_swig/PMMLBasicsTest.py
src/yacsloader/CMakeLists.txt
src/yacsloader/Test/CMakeLists.txt
src/yacsloader/pmml/CMakeLists.txt
src/yacsloader/pmml/PmmlExeTest.sh.in [new file with mode: 0755]
src/yacsloader/pmml/PmmlInSessionTest.sh.in [new file with mode: 0755]
src/yacsloader/pmml/YACSPMMLBasicsTest1.cxx
src/yacsloader/pmml/config_appli.xml.in [new file with mode: 0644]

index 59a4a180b653a5ed9706ac88b39ce0150b0f4b78..a7c17a36f28ee870bf84a28640bd184122436abf 100755 (executable)
@@ -13,12 +13,10 @@ import shutil
 class PMMLBasicsTest(unittest.TestCase):
 
     def setUp(self):
-        pmmlRootDir = os.getenv("YACS_ROOT_DIR");
-        self.resourcesDir = os.path.join(pmmlRootDir,"share","salome","resources","pmml");
-        self.resourcesDir += os.sep ;
-        self.tmpDir = "/tmp/";
-        self.tmpDir += os.environ['LOGNAME']; # ("USER");
-        self.tmpDir += "/PmmlUnitTest/";
+        self.resourcesDir = ".." + os.sep + "Test" + os.sep + "samples" + os.sep ;
+        self.tmpDir = os.sep + "tmp" + os.sep + os.environ['LOGNAME'] + os.sep ;
+        self.tmpDir += "PmmlUnitTest";
+        self.tmpDir += os.sep ;
         if ( not os.path.exists(self.tmpDir) ):
             os.mkdir(self.tmpDir);
             pass
index 10c37ba19b3895b182406d57f710354ba3413c40..43c1f2f68e52a9d0b1fc0409ad9991ef7922094d 100644 (file)
@@ -19,7 +19,7 @@
 
 IF(SALOME_BUILD_TESTS)
   ADD_SUBDIRECTORY(Test)
-  ADD_SUBDIRECTORY(pmml)
+  ADD_SUBDIRECTORY(pmml)  
 ENDIF(SALOME_BUILD_TESTS)
 
 # --- options ---
index 6c4f4866c58d2250b87e5a9f69c54ee2ad9eeadd..c53c72dde30766f0c8b3f89facba9a45a3c020c5 100644 (file)
@@ -114,3 +114,4 @@ IF(NOT WIN32)
   SALOME_CONFIGURE_FILE(xmlrun_orig.sh xmlrun.sh)
   ADD_TEST(NAME YacsLoaderTest COMMAND ${SHELL} YacsLoaderTest.sh)
 ENDIF()
+
index f6cd5ddb7b2406ca7aeca51f32828c079ab08836..8e355b988e4a185131db0b85846f5836612b6b3e 100755 (executable)
@@ -53,6 +53,12 @@ TARGET_LINK_LIBRARIES(TestYACSPMML pmmlLib
                       YACSBases 
                       ${CPPUNIT_LIBRARIES} ${PLATFORM_LIBS})
 
-ADD_TEST(TestYACSPMML TestYACSPMML)
-
 INSTALL(TARGETS TestYACSPMML DESTINATION ${SALOME_INSTALL_BINS})
+
+IF(NOT WIN32)
+  SET(SHELL /bin/sh)
+  SALOME_CONFIGURE_FILE(config_appli.xml.in config_appli.xml)  
+  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
diff --git a/src/yacsloader/pmml/PmmlExeTest.sh.in b/src/yacsloader/pmml/PmmlExeTest.sh.in
new file mode 100755 (executable)
index 0000000..d5f13d6
--- /dev/null
@@ -0,0 +1,91 @@
+#!/bin/bash
+# Copyright (C) 2006-2014  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 test -f @CMAKE_CURRENT_BINARY_DIR@/config_appli.xml; then
+  if test -n "${GEOM_ROOT_DIR}" && test -d ${GEOM_ROOT_DIR}; then
+    sed -i s%\"GEOM_ROOT_DIR\"%\"${GEOM_ROOT_DIR}\"% @CMAKE_CURRENT_BINARY_DIR@/config_appli.xml
+  fi
+  if test -n "${PYHELLO_ROOT_DIR}" && test -d ${PYHELLO_ROOT_DIR}; then
+    sed -i s%\"PYHELLO_ROOT_DIR\"%\"${PYHELLO_ROOT_DIR}\"% @CMAKE_CURRENT_BINARY_DIR@/config_appli.xml
+  fi
+fi
+
+if test -f @KERNEL_ROOT_DIR@/bin/salome/appli_gen.py ; then
+
+  # --- create a SALOME Application environment
+
+  @KERNEL_ROOT_DIR@/bin/salome/appli_gen.py
+  sed -i s/\"yes\"/\"no\"/ SalomeApp.xml
+  sed -i s/\,study\,cppContainer\,registry\,moduleCatalog// SalomeApp.xml
+  sed -i s/pyContainer/pyContainer\,study\,cppContainer\,registry\,moduleCatalog/ SalomeApp.xml
+
+cat > CatalogResources.xml << EOF
+<!DOCTYPE ResourcesCatalog>
+<resources>
+   <machine hostname="localhost" />
+</resources>
+EOF
+
+  # ---------------------------------------------------------------------------
+  # --- first set of test in C++
+
+  # --- launch in background a SALOME session (servers)
+
+  ln -fs @CMAKE_SOURCE_DIR@/src/yacsloader/samples .
+  ./runAppli > log1 2>&1
+
+  # --- wait a little to let the background process define
+  #     the CORBA naming service port and host
+
+  sleep 5
+
+  # --- execute the test script in SALOME session environment
+
+  chmod +x @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
+  ./runSession @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
+  ret=$?
+
+  # ---------------------------------------------------------------------------
+
+  kill -9 `cat "/tmp/YACSTEST_PidEcho"`
+  ./runSession killSalome.py
+
+  echo "exec status PmmlInSessionTest.sh "  $ret
+
+  # --- delete all the SALOME Application environment
+  
+  ./bin/salome/appli_clean.sh -f
+
+else
+
+  ln -fs @CMAKE_SOURCE_DIR@/src/yacsloader/samples .
+  chmod +x @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
+  @CMAKE_CURRENT_BINARY_DIR@/PmmlInSessionTest.sh
+  ret=$?
+  echo "exec status PmmlInSessionTest.sh " $ret
+
+fi
+
+if [ $ret -ne 0 ]
+then cat /tmp/${USER}/UnitTestsResult
+else echo "Results are in /tmp/${USER}/UnitTestsResult"
+fi
+
+exit $ret
diff --git a/src/yacsloader/pmml/PmmlInSessionTest.sh.in b/src/yacsloader/pmml/PmmlInSessionTest.sh.in
new file mode 100755 (executable)
index 0000000..2ef1b9d
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/bash
+# Copyright (C) 2006-2014  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
+#
+
+# --- script to execute in SALOME environment (use runSession)
+
+# --- wait until SALOME containers are ready
+
+python @CMAKE_CURRENT_SOURCE_DIR@/waitContainers.py
+
+# --- launch CORBA server echoSrv for tests
+
+./echoSrv &
+pidecho=$!
+echo $pidecho > "/tmp/YACSTEST_PidEcho"
+
+# Environment variables needed for the optimizer loop tests
+export LD_LIBRARY_PATH=@CMAKE_CURRENT_BINARY_DIR@:$LD_LIBRARY_PATH
+export PYTHONPATH=@CMAKE_BINARY_DIR@/src/engine_swig:$PYTHONPATH
+export PYTHONPATH=@CMAKE_BINARY_DIR@/src/runtime_swig:$PYTHONPATH
+export PYTHONPATH=@CMAKE_CURRENT_SOURCE_DIR@:$PYTHONPATH
+
+# --- launch unit tests
+
+export ROOT_SAMPLES=@CMAKE_SOURCE_DIR@/src/yacsloader/samples
+export TESTCOMPONENT_ROOT_DIR=@CMAKE_BINARY_DIR@/src/runtime/Test
+
+./TestYACSPMML
+ret=$?
+echo "exec status TestYACSPMML " $ret
+
+# --- return unit tests status
+
+exit $ret
index f8f70b6c07ecdb8eab74543135a5e5d9c68478b0..8bcf696f05dbd5fba335a1df6ab8a79e77ceb7bb 100755 (executable)
@@ -125,19 +125,7 @@ int driverTest(Proc* &p, const char* schema)
 
 void YACSPMMLBasicsTest1::setUp()
 {
-#ifdef WIN32
-    const char* p = std::getenv("YACS_ROOT_DIR");
-    std::string strP("");
-    if (p) 
-        strP = std::string(p);
-    else 
-        throw std::string("unable to get YACS_ROOT_DIR");
-    resourcesDir = strP;
-    resourcesDir += "/share/salome/yacssamples/";
-#else
-    resourcesDir =  getenv("YACS_ROOT_DIR");
-    resourcesDir += "/share/salome/yacssamples/";
-#endif      
+    resourcesDir = "samples/";    
 }
 
 void YACSPMMLBasicsTest1::tearDown()
diff --git a/src/yacsloader/pmml/config_appli.xml.in b/src/yacsloader/pmml/config_appli.xml.in
new file mode 100644 (file)
index 0000000..2c3dafa
--- /dev/null
@@ -0,0 +1,34 @@
+<!--
+  Copyright (C) 2006-2014  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
+
+-->
+<application>
+<prerequisites path="profile@SALOMEYACS_VERSION@.sh"/>
+<modules>
+   <!-- variable name <MODULE>_ROOT_DIR is built with <MODULE> == name attribute value -->
+   <!-- <MODULE>_ROOT_DIR values is set with path attribute value -->
+   <!-- attribute gui (defaults = yes) indicates if the module has a gui interface -->
+   <module name="KERNEL"       gui="no"  path="@KERNEL_ROOT_DIR@"/>
+   <module name="GUI"          gui="no"  path="@GUI_ROOT_DIR@"/>
+   <module name="GEOM"                   path="GEOM_ROOT_DIR"/> <!--GEOM_ROOT_DIR will be substituted at starting of test-->
+   <module name="PYHELLO"                path="PYHELLO_ROOT_DIR"/> <!--PYHELLO_ROOT_DIR will be substituted at starting of test-->
+   <module name="YACS"                   path="@CMAKE_INSTALL_PREFIX@"/>
+</modules>
+</application>
+