add_subdirectory(MEDLoaderForPV)
add_subdirectory(ParaViewPlugin)
-option(BUILD_TESTING "Build Plugin Testing" OFF)
-if (BUILD_TESTING)
+if (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ # option to build tests in a standalone mode
+ option(BUILD_TESTING "Build Plugin Testing" OFF)
+endif()
+if (SALOME_BUILD_TESTS OR BUILD_TESTING)
add_subdirectory(Test)
endif()
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-if (PARAVIEW_ENABLE_PYTHON)
- file(GLOB pythonTests *.py)
- list(FILTER pythonTests EXCLUDE REGEX ".*MEDReaderHelper.py$")
- foreach(testFullPath ${pythonTests})
- get_filename_component(testFile ${testFullPath} NAME)
- paraview_add_test_python(NO_RT DIRECT_DATA ${testFile})
- get_filename_component(testName ${testFile} NAME_WE)
- set_tests_properties(Python-${testName} PROPERTIES ENVIRONMENT "PARAVIEW_DATA_ROOT=${CMAKE_CURRENT_SOURCE_DIR}/Data;LD_LIBRARY_PATH=${QT5_ROOT_DIR}/lib/:${MEDCOUPLING_ROOT_DIR}/lib/:${MEDFILE_ROOT_DIR}/lib/:${HDF5_ROOT_DIR}/lib:${PYTHON_ROOT_DIR}/lib;PYTHONPATH=${MEDCOUPLING_ROOT_DIR}/lib/python3.6/site-packages/;PV_PLUGIN_PATH=${CMAKE_BINARY_DIR}/lib/paraview-5.7/plugins/MEDReader;PARAVIEW_BIN_DIR=${ParaView_DIR}/bin/")
+if (CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+
+ ###########################
+ # Tests for standalone mode
+ ###########################
+
+ if (PARAVIEW_ENABLE_PYTHON)
+ file(GLOB pythonTests *.py)
+ list(FILTER pythonTests EXCLUDE REGEX ".*MEDReaderHelper.py$")
+ list(FILTER pythonTests EXCLUDE REGEX ".*medreadertestlauncher.py$")
+ foreach(testFullPath ${pythonTests})
+ get_filename_component(testFile ${testFullPath} NAME)
+ paraview_add_test_python(NO_RT DIRECT_DATA ${testFile})
+ get_filename_component(testName ${testFile} NAME_WE)
+ set_tests_properties(Python-${testName} PROPERTIES ENVIRONMENT "PARAVIEW_DATA_ROOT=${CMAKE_CURRENT_SOURCE_DIR}/Data;LD_LIBRARY_PATH=${QT5_ROOT_DIR}/lib/:${MEDCOUPLING_ROOT_DIR}/lib/:${MEDFILE_ROOT_DIR}/lib/:${HDF5_ROOT_DIR}/lib:${PYTHON_ROOT_DIR}/lib;PYTHONPATH=${MEDCOUPLING_ROOT_DIR}/lib/python3.6/site-packages/;PV_PLUGIN_PATH=${CMAKE_BINARY_DIR}/lib/paraview-5.7/plugins/MEDReader;PARAVIEW_BIN_DIR=${ParaView_DIR}/bin/")
+ endforeach()
+ endif()
+
+ if(PARAVIEW_USE_QT)
+ file(GLOB xmlTests *.xml)
+ foreach(testFullPath ${xmlTests})
+ get_filename_component(testFile ${testFullPath} NAME)
+ get_filename_component(testName ${testFile} NAME_WE)
+ set (${testName}_USES_DIRECT_DATA ON)
+ paraview_add_client_tests(
+ LOAD_PLUGIN MEDReader
+ PLUGIN_PATH $<TARGET_FILE_DIR:MEDReader>
+ BASELINE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline
+ TEST_SCRIPTS ${testFile})
+ set_tests_properties(pv.${testName} PROPERTIES ENVIRONMENT "PARAVIEW_DATA_ROOT=${CMAKE_CURRENT_SOURCE_DIR}/Data;LD_LIBRARY_PATH=${QT5_ROOT_DIR}/lib/:${MEDCOUPLING_ROOT_DIR}/lib/:${MEDFILE_ROOT_DIR}/lib/:${HDF5_ROOT_DIR}/lib:${PYTHON_ROOT_DIR}/lib")
+ endforeach()
+ endif()
+
+else()
+
+ ########################
+ # Tests for PARAVIS mode
+ ########################
+
+ include(tests.set)
+
+ salome_generate_tests_environment(tests_env)
+ list(APPEND tests_env "PARAVIEW_DATA_ROOT=${CMAKE_CURRENT_SOURCE_DIR}/Data")
+
+ set(_helper_script ${CMAKE_CURRENT_SOURCE_DIR}/medreadertestlauncher.py)
+ set(_baseline_dir ${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline)
+ IF(SALOME_PARAVIS_NO_VISU_TESTS)
+ SET(_other_options "-D")
+ ENDIF()
+
+ foreach(tfile ${TEST_NUMBERS})
+ add_test(Python-testMEDReader${tfile}
+ ${PYTHON_EXECUTABLE}
+ ${CMAKE_CURRENT_SOURCE_DIR}/testMEDReader${tfile}.py
+ -B ${_baseline_dir} ${_other_options})
+ set_tests_properties(Python-testMEDReader${tfile} PROPERTIES ENVIRONMENT "${tests_env}")
endforeach()
-endif()
-if (PARAVIEW_USE_QT)
- file(GLOB xmlTests *.xml)
- foreach(testFullPath ${xmlTests})
- get_filename_component(testFile ${testFullPath} NAME)
- get_filename_component(testName ${testFile} NAME_WE)
- set (${testName}_USES_DIRECT_DATA ON)
- paraview_add_client_tests(
- LOAD_PLUGIN MEDReader
- PLUGIN_PATH $<TARGET_FILE_DIR:MEDReader>
- BASELINE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Data/Baseline
- TEST_SCRIPTS ${testFile})
- set_tests_properties(pv.${testName} PROPERTIES ENVIRONMENT "PARAVIEW_DATA_ROOT=${CMAKE_CURRENT_SOURCE_DIR}/Data;LD_LIBRARY_PATH=${QT5_ROOT_DIR}/lib/:${MEDCOUPLING_ROOT_DIR}/lib/:${MEDFILE_ROOT_DIR}/lib/:${HDF5_ROOT_DIR}/lib:${PYTHON_ROOT_DIR}/lib")
+ # Application tests
+ set(TEST_INSTALL_DIRECTORY ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test/MEDReader)
+ foreach(tfile ${TEST_NUMBERS})
+ install(FILES testMEDReader${tfile}.py
+ DESTINATION ${TEST_INSTALL_DIRECTORY})
endforeach()
+
+ install(FILES MEDReaderHelper.py tests.set
+ DESTINATION ${TEST_INSTALL_DIRECTORY})
+ install(FILES CTestTestfileInstall.cmake
+ DESTINATION ${TEST_INSTALL_DIRECTORY}
+ RENAME CTestTestfile.cmake)
+ install(DIRECTORY Data/Baseline DESTINATION ${TEST_INSTALL_DIRECTORY})
+
endif()
--- /dev/null
+# Copyright (C) 2015-2019 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
+#
+
+INCLUDE(tests.set)
+
+SET(COMPONENT_NAME MEDREADER)
+SET(TIMEOUT 60)
+
+set(BASELINE_DIR "Baseline")
+
+FOREACH(tfile ${TEST_NUMBERS})
+ SET(TEST_NAME MEDREADER_${tfile})
+ ADD_TEST(${TEST_NAME} python testMEDReader${tfile}.py -B ${BASELINE_DIR})
+ SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME};REQUIRE_X_SERVER" TIMEOUT ${TIMEOUT})
+ENDFOREACH()
--- /dev/null
+import subprocess as sp
+import re,sys
+
+def LaunchMEDReaderTest(fn,baseLineDir):
+ """
+ Tuleap 18933 : wrapper over MEDReader tests. Waiting for better solution.
+ """
+ p = sp.Popen(["python3",fn,"-B",baseLineDir],stdout=sp.PIPE,stderr=sp.PIPE)
+ a,b = p.communicate()
+ if p.returncode == 0:
+ return
+
+ stringToAnalyze = a.decode("utf-8")
+ linesOfStringToAnalyze = stringToAnalyze.split('\n')
+ pat = re.compile("<DartMeasurement name=\"ImageError\" type=\"numeric/double\">[\s+]([\S]+)[\s]*</DartMeasurement>")
+ zeLine = [elt for elt in linesOfStringToAnalyze if pat.match(elt)]
+ if len(zeLine) != 1:
+ raise RuntimeError("Error for test {}".format(fn))
+ delta = float(pat.match(zeLine[0]).group(1))
+ if delta > 1:
+ raise RuntimeError("Image comparison failed : {} > 1".format(delta))
+
+def LaunchAllTests(baseLineDir):
+ from glob import glob
+ fis = glob("testMEDReader*.py")
+ for fi in fis:
+ print(fi)
+ LaunchMEDReaderTest(fi,baseLineDir)
+
+if __name__ == "__main__":
+ LaunchMEDReaderTest(sys.argv[1],sys.argv[2])
+
--- /dev/null
+# Copyright (C) 2017-2020 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
+#
+
+# This file declares a shared set of MEDREADER tests, used by two test
+# approaches: "make test" and "salome test". The former is used just after
+# MEDREADER build step, the latter is used from an installed SALOME application.
+#
+# We here initialize a cmake variable that is used, by file inclusion, in
+# CMakeLists.txt (for make test) and CTestTestfileInstall.cmake (for salome
+# test).
+# This variables is: TEST_NUMBERS.
+# Additional variables might be defined if necessary.
+
+# 11 and 12 have been willingly removed due to problem in image comparisons
+
+SET(TEST_NUMBERS 0 1 2 3 4 5 6 7 8 9 10 13 14 15 16 17 18 19 20 21 22)