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
IF(SALOME_BUILD_TESTS)
ADD_SUBDIRECTORY(Test)
- ADD_SUBDIRECTORY(pmml)
+ ADD_SUBDIRECTORY(pmml)
ENDIF(SALOME_BUILD_TESTS)
# --- options ---
SALOME_CONFIGURE_FILE(xmlrun_orig.sh xmlrun.sh)
ADD_TEST(NAME YacsLoaderTest COMMAND ${SHELL} YacsLoaderTest.sh)
ENDIF()
+
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
--- /dev/null
+#!/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
--- /dev/null
+#!/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
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()
--- /dev/null
+<!--
+ 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>
+