From: vsr Date: Wed, 20 Apr 2022 11:00:57 +0000 (+0300) Subject: bos #29484 Add separate directory for test scripts X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2Fvsr%2F29484;p=modules%2Fgeom.git bos #29484 Add separate directory for test scripts --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cd5827c1..385105cca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,6 +200,15 @@ SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH NOCHECK ${CMAKE_INSTALL_PREFIX}/${SALOM ${CMAKE_INSTALL_PREFIX}/${SALOME_INSTALL_PYTHON_SHARED}) SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH NOCHECK ${CMAKE_INSTALL_PREFIX}/${SALOME_INSTALL_LIBS}) +# For salome test +# =============== +SET(GEOM_TEST_DIR ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test) +IF(SALOME_BUILD_TESTS) + INSTALL(FILES CTestTestfileInstall.cmake + DESTINATION ${GEOM_TEST_DIR} + RENAME CTestTestfile.cmake) +ENDIF() + # Sources # ======== ADD_SUBDIRECTORY(idl) @@ -208,8 +217,9 @@ ADD_SUBDIRECTORY(adm_local) ADD_SUBDIRECTORY(resources) ADD_SUBDIRECTORY(bin) ADD_SUBDIRECTORY(src) -IF(SALOME_BUILD_DOC) - ADD_SUBDIRECTORY(doc) +ADD_SUBDIRECTORY(doc) +IF(SALOME_BUILD_TESTS) + ADD_SUBDIRECTORY(test) ENDIF() # Header configuration @@ -304,8 +314,3 @@ INSTALL(FILES # Install the export set for use with the install-tree INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" FILE ${PROJECT_NAME}Targets.cmake) - -# Application tests -INSTALL(FILES CTestTestfileInstall.cmake - DESTINATION ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test - RENAME CTestTestfile.cmake) diff --git a/CTestTestfileInstall.cmake b/CTestTestfileInstall.cmake index ed7c74822..01240f1c7 100644 --- a/CTestTestfileInstall.cmake +++ b/CTestTestfileInstall.cmake @@ -18,9 +18,7 @@ # SET(PYTHON_TEST_DRIVER "$ENV{KERNEL_ROOT_DIR}/bin/salome/appliskel/python_test_driver.py") - SET(COMPONENT_NAME GEOM) SET(TIMEOUT 300) -SUBDIRS(examples) -SUBDIRS(xao) +SUBDIRS(examples xao other) diff --git a/doc/salome/CMakeLists.txt b/doc/salome/CMakeLists.txt index 28fe8fe84..24a74560c 100644 --- a/doc/salome/CMakeLists.txt +++ b/doc/salome/CMakeLists.txt @@ -20,6 +20,8 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -ADD_SUBDIRECTORY(tui) -ADD_SUBDIRECTORY(gui) -ADD_SUBDIRECTORY(examples) \ No newline at end of file +ADD_SUBDIRECTORY(examples) +IF(SALOME_BUILD_DOC) + ADD_SUBDIRECTORY(tui) + ADD_SUBDIRECTORY(gui) +ENDIF() diff --git a/doc/salome/examples/0README b/doc/salome/examples/0README new file mode 100644 index 000000000..c1d0f1464 --- /dev/null +++ b/doc/salome/examples/0README @@ -0,0 +1,7 @@ +This folder contains example Python scripts which are used in the documentation of Geometry module, +i.e. those mentioned in *.doc files in {root_src}/doc/salome/gui/GEOM/input folder. + +These tests are exported into the ${GEOM_ROOT_DIR}/share/doc/salome/examples/GEOM folder and can be +executed with the `salome test` command, as a part of whole testing procedure. + +Other Python scripts aimed for testing purposes must be put into the ${root_src}/test folder! diff --git a/doc/salome/examples/CMakeLists.txt b/doc/salome/examples/CMakeLists.txt index ab59a76f6..f039dc157 100644 --- a/doc/salome/examples/CMakeLists.txt +++ b/doc/salome/examples/CMakeLists.txt @@ -19,31 +19,36 @@ INCLUDE(tests.set) -SET(TEST_REINIT_SALOME "False") -SALOME_CONFIGURE_FILE(tests.py.in tests.py) +SET(TEST_INSTALL_DIRECTORY ${GEOM_TEST_DIR}/examples) +SET(EXAMPLES_INSTALL_DIRECTORY ${SALOME_INSTALL_DOC}/examples/GEOM) -SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env) +IF(SALOME_BUILD_TESTS) + + # Install 'salome test' staff + # --------------------------- + + INSTALL(FILES CTestTestfileInstall.cmake + DESTINATION ${TEST_INSTALL_DIRECTORY} + RENAME CTestTestfile.cmake) + INSTALL(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY}) + + # Add tests for 'make test' + # ------------------------- + + SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env) -IF(GEOM_JOIN_TESTS) - ADD_TEST(NAME GEOM_examples COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/doc/salome/examples/testme.py tests.py) -ELSE(GEOM_JOIN_TESTS) FOREACH(test ${GOOD_TESTS}) GET_FILENAME_COMPONENT(testname ${test} NAME_WE) ADD_TEST(NAME ${testname} - COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/doc/salome/examples/testme.py ${CMAKE_CURRENT_SOURCE_DIR}/${test}) - SET_TESTS_PROPERTIES(${testname} PROPERTIES ENVIRONMENT "${tests_env}") + COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/test/test_helper.py ${CMAKE_CURRENT_SOURCE_DIR}/${test}) + SET_TESTS_PROPERTIES(${testname} PROPERTIES ENVIRONMENT "${tests_env}" LABELS "examples") ENDFOREACH() -ENDIF(GEOM_JOIN_TESTS) - -# install Python scripts -SALOME_INSTALL_SCRIPTS("${EXAMPLES_TESTS}" ${SALOME_INSTALL_DOC}/examples/GEOM) -# Application tests +ENDIF() -SET(TEST_INSTALL_DIRECTORY ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test/examples) -INSTALL(FILES ${GOOD_TESTS} DESTINATION ${TEST_INSTALL_DIRECTORY}) +# Install example scripts and data +# -------------------------------- -INSTALL(FILES CTestTestfileInstall.cmake - DESTINATION ${TEST_INSTALL_DIRECTORY} - RENAME CTestTestfile.cmake) -INSTALL(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY}) +IF(SALOME_BUILD_TESTS OR SALOME_BUILD_DOC) + INSTALL(FILES ${GOOD_TESTS} ${BAD_TESTS} DESTINATION ${EXAMPLES_INSTALL_DIRECTORY}) +ENDIF() diff --git a/doc/salome/examples/CTestTestfileInstall.cmake b/doc/salome/examples/CTestTestfileInstall.cmake index 324ae5ba4..02bf867c7 100644 --- a/doc/salome/examples/CTestTestfileInstall.cmake +++ b/doc/salome/examples/CTestTestfileInstall.cmake @@ -17,11 +17,13 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +SET(SCRIPTS_DIR "../../../../share/doc/salome/examples/GEOM") + INCLUDE(tests.set) FOREACH(tfile ${GOOD_TESTS}) GET_FILENAME_COMPONENT(BASE_NAME ${tfile} NAME_WE) - SET(TEST_NAME GEOM_${BASE_NAME}) - ADD_TEST(${TEST_NAME} python ${PYTHON_TEST_DRIVER} ${TIMEOUT} ${tfile}) - SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME}") + SET(TEST_NAME ${COMPONENT_NAME}_${BASE_NAME}) + ADD_TEST(${TEST_NAME} python ${PYTHON_TEST_DRIVER} ${TIMEOUT} ${SCRIPTS_DIR}/${tfile}) + SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME};${COMPONENT_NAME}_examples") ENDFOREACH() diff --git a/doc/salome/examples/testme.py b/doc/salome/examples/testme.py deleted file mode 100755 index 3f4515f69..000000000 --- a/doc/salome/examples/testme.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE -# -# 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 unittest, sys, os - -class SalomeSession(object): - def __init__(self, script): - import runSalomeOld as runSalome - run_script = "runSalomeOld.py" - if sys.platform == 'win32': - module_dir = os.getenv("KERNEL_ROOT_DIR") - if module_dir: run_script = os.path.join(module_dir, "bin", "salome", run_script) - pass - sys.argv = [run_script] - sys.argv += ["--terminal"] - sys.argv += ["--modules=GEOM"] - sys.argv += ["%s" % script] - if sys.platform == 'win32': - main_module_path = sys.modules['__main__'].__file__ - sys.modules['__main__'].__file__ = '' - clt, d = runSalome.main() - if sys.platform == 'win32': - sys.modules['__main__'].__file__ = main_module_path - return - - def __del__(self): - port = os.getenv('NSPORT') - import killSalomeWithPort - killSalomeWithPort.killMyPort(port) - return - pass - -class MyTest(unittest.TestCase): - def testFunction(self): - SalomeSession(sys.argv[1]) - pass - -unittest.main(argv=sys.argv[:1]) diff --git a/doc/salome/examples/tests.py.in b/doc/salome/examples/tests.py.in deleted file mode 100644 index 3b1f8800f..000000000 --- a/doc/salome/examples/tests.py.in +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (C) 2018-2021 CEA/DEN, EDF R&D, OPEN CASCADE -# -# 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 -# - -DIR='@CMAKE_CURRENT_SOURCE_DIR@' -TESTS='@GOOD_TESTS@' -REINIT_SALOME=@TEST_REINIT_SALOME@ - -import os -import unittest -import salome - -class MyTest(unittest.TestCase): - def setUp(self): - if REINIT_SALOME: - salome.salome_init() - def tearDown(self): - if REINIT_SALOME: - salome.salome_close() - pass - -if __name__ == "__main__": - tests = TESTS.split(';') - for test in tests: - file_name = os.path.basename(test) - if os.path.isabs(test): - file_path = file_name - else: - file_path = os.path.join(DIR, file_name) - case_name = 'test_' + file_name[:-3] - code = """ -def func(self): - with open('{}') as f: - exec(f.read()) -""" - exec(code.format(file_path)) - setattr(MyTest, case_name, func) - - unittest.main() diff --git a/doc/salome/examples/tests.set b/doc/salome/examples/tests.set index eee7f4cc4..c4499a342 100644 --- a/doc/salome/examples/tests.set +++ b/doc/salome/examples/tests.set @@ -134,5 +134,3 @@ SET(GOOD_TESTS GEOM_Field.py check_self_intersections_fast.py # OCC > 6.9.0 ) - -SET(EXAMPLES_TESTS ${BAD_TESTS} ${GOOD_TESTS} testme.py) diff --git a/src/XAO/tests/CMakeLists.txt b/src/XAO/tests/CMakeLists.txt index 397f4f157..112b8068f 100644 --- a/src/XAO/tests/CMakeLists.txt +++ b/src/XAO/tests/CMakeLists.txt @@ -60,7 +60,7 @@ SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env) SET(TEST_INSTALL_DIRECTORY ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test/xao) ADD_TEST(TestXAO TestXAO) -SET_TESTS_PROPERTIES(TestXAO PROPERTIES ENVIRONMENT "XAO_DATA_DIR=${CMAKE_CURRENT_SOURCE_DIR}/data;${tests_env}") +SET_TESTS_PROPERTIES(TestXAO PROPERTIES ENVIRONMENT "XAO_DATA_DIR=${CMAKE_CURRENT_SOURCE_DIR}/data;${tests_env}" LABELS "xao") INSTALL(TARGETS TestXAO DESTINATION ${SALOME_INSTALL_BINS}) diff --git a/src/XAO/tests/CTestTestfileInstall.cmake b/src/XAO/tests/CTestTestfileInstall.cmake index 09e8b4d03..b4c8baf27 100644 --- a/src/XAO/tests/CTestTestfileInstall.cmake +++ b/src/XAO/tests/CTestTestfileInstall.cmake @@ -19,5 +19,5 @@ ADD_TEST(GEOM_TestXAO python ${PYTHON_TEST_DRIVER} ${TIMEOUT} TestXAO) SET_TESTS_PROPERTIES(GEOM_TestXAO PROPERTIES - LABELS "${COMPONENT_NAME}" + LABELS "${COMPONENT_NAME};${COMPONENT_NAME}_xao" ENVIRONMENT "XAO_DATA_DIR=$ENV{GEOM_ROOT_DIR}/bin/salome/test/xao/data") diff --git a/test/0README b/test/0README new file mode 100644 index 000000000..7b15cc9db --- /dev/null +++ b/test/0README @@ -0,0 +1,7 @@ +This folder contains test scripts for GEOM module. + +These tests are exported into the ${GEOM_ROOT_DIR}/bin/test folder and can be executed with the +`salome test` command, as a part of whole testing procedure. + +The example Python scripts to be used in the documentation of Geometry module, must be put into the +{root_src}/doc/salome/examples folder! diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 000000000..68cd63630 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,64 @@ +# Copyright (C) 2007-2021 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 +# +# 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(RESTRICTED_ROOT_DIR $ENV{RESTRICTED_ROOT_DIR} CACHE PATH "Path to the restricted repository") +SET(TEST_INSTALL_DIRECTORY ${GEOM_TEST_DIR}/other) + +# Install 'salome test' staff +# --------------------------- + +INSTALL(FILES CTestTestfileInstall.cmake + DESTINATION ${TEST_INSTALL_DIRECTORY} + RENAME CTestTestfile.cmake) +INSTALL(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY}) +INSTALL(FILES ${ALL_TESTS} DESTINATION ${TEST_INSTALL_DIRECTORY}) +INSTALL(DIRECTORY data DESTINATION ${TEST_INSTALL_DIRECTORY}) + +# Add tests for 'make test' +# ------------------------- + +SALOME_GENERATE_TESTS_ENVIRONMENT(_test_env) + +# 1. Tests from here +# ------------------ + +FOREACH(_test ${ALL_TESTS}) + GET_FILENAME_COMPONENT(testname ${_test} NAME_WE) + ADD_TEST(NAME ${testname} + COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/test/test_helper.py ${CMAKE_CURRENT_SOURCE_DIR}/${_test}) + SET_TESTS_PROPERTIES(${testname} PROPERTIES ENVIRONMENT "${tests_env}" LABELS "tests") +ENDFOREACH() + +# 2. Tests from RESTRICTED repository +# ----------------------------------- + +IF(EXISTS ${RESTRICTED_ROOT_DIR}/GEOM) + FILE(GLOB _restricted_tests "${RESTRICTED_ROOT_DIR}/GEOM/*.py") + FOREACH(_test ${_restricted_tests}) + GET_FILENAME_COMPONENT(_test_name ${_test} NAME_WE) + ADD_TEST(NAME ${_test_name} + COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/test/test_helper.py ${_test}) + SET_TESTS_PROPERTIES(${_test_name} PROPERTIES ENVIRONMENT "${_test_env}" LABELS "restricted") + ENDFOREACH() +ENDIF() diff --git a/test/CTestTestfileInstall.cmake b/test/CTestTestfileInstall.cmake new file mode 100644 index 000000000..3ac85ebf6 --- /dev/null +++ b/test/CTestTestfileInstall.cmake @@ -0,0 +1,27 @@ +# Copyright (C) 2015-2021 CEA/DEN, EDF R&D, OPEN CASCADE +# +# 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) + +FOREACH(tfile ${ALL_TESTS}) + GET_FILENAME_COMPONENT(BASE_NAME ${tfile} NAME_WE) + SET(TEST_NAME ${COMPONENT_NAME}_${BASE_NAME}) + ADD_TEST(${TEST_NAME} python ${tfile}) + SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME};${COMPONENT_NAME}_tests") +endforeach() diff --git a/test/data/test_performance_01.brep b/test/data/test_performance_01.brep new file mode 100644 index 000000000..7b73d08f3 --- /dev/null +++ b/test/data/test_performance_01.brep @@ -0,0 +1,141 @@ +DBRep_DrawableShape + +CASCADE Topology V1, (c) Matra-Datavision +Locations 8 +1 + 1 2.44929359829471e-16 0 0 +-2.44929359829471e-16 1 0 -4.89858719658941e-15 + 0 0 1 0 +1 + 1 0 -2.44929359829471e-16 4.89858719658941e-15 + 0 1 0 0 +2.44929359829471e-16 0 1 0 +2 1 1 2 1 0 +1 + -1 0 1.22464679914735e-16 -2.44929359829471e-15 + 0 1 0 0 +-1.22464679914735e-16 0 -1 40 +2 1 1 2 1 4 1 0 +2 2 -1 0 +2 4 -1 2 -1 0 +2 2 1 4 1 0 +Curve2ds 10 +1 0 0 1 0 +1 0 6.2831853071795862 1 0 +2 0 0 -1 0 0 1 9.9999999999766942e-05 +1 0 0 0 1 +1 3.1415926535897931 0 0 1 +1 0 0 1 0 +1 0 6.2831853071795862 1 0 +2 0 0 -1 -4.8988262214224833e-28 -4.8988262214224833e-28 1 2 +1 0 0 0 1 +1 3.1415926535897931 0 0 1 +Curves 4 +2 0 -2.4492935982841007e-20 20 0 1 0 -1 0 -1.7763657212288565e-16 -1.7763657212288565e-16 0 1 19.9999 +2 -20 0 20 0 0 1 1 -2.4492935982898091e-16 0 2.4492935982898091e-16 1 -0 9.9999999999766942e-05 +2 0 -4.8985871965894138e-16 20 0 1 0 -1 0 -1.9737298215558337e-16 -1.9737298215558337e-16 0 1 18 +2 -20 0 20 0 0 1 1 -2.4492935982947069e-16 0 2.4492935982947069e-16 1 -0 2 +Polygon3D 0 +PolygonOnTriangulations 0 +Surfaces 3 +7 0 0 20 0 1 0 +8 0 6.2831853071795862 +2 -20 0 19.999999999999996 -2.4492935982947064e-16 0 1 1 -2.4492935982898091e-16 2.4492935982947064e-16 2.4492935982898091e-16 1 5.9990391306354351e-32 9.9999999999766942e-05 +1 -20 0 20 0 0 1 -1 2.4492935982898091e-16 -0 2.4492935982898091e-16 1 -0 +7 0 0 20 0 1 0 +8 0 6.2831853071795862 +2 -20 0 19.999999999999996 -2.4492935982947064e-16 0 1 1 -2.4492935982947069e-16 2.4492935982947064e-16 2.4492935982947069e-16 1 5.9990391306474315e-32 2 +Triangulations 0 + +TShapes 15 +Ve +1e-07 +-19.9999 0 20 +0 0 + +0101101 +* +Ed + 1e-07 1 1 0 +1 1 0 0 3.14159265358979 +3 1 2CN 1 0 0 3.14159265358979 +0 + +0101000 ++15 3 -15 5 * +Ed + 1e-07 1 1 0 +1 2 0 0 6.28318530717959 +2 3 2 0 0 6.28318530717959 +2 4 1 6 0 6.28318530717959 +2 5 1 7 0 6.28318530717959 +0 + +0101000 ++15 1 -15 1 * +Wi + +0101100 ++14 0 -14 0 -13 2 +13 8 * +Fa +0 1e-07 1 0 + +0101000 ++12 0 * +Ve +1e-07 +-18 0 20 +0 0 + +0101101 +* +Ed + 1e-07 1 1 0 +1 3 0 0 3.14159265358979 +3 6 7CN 3 0 0 3.14159265358979 +0 + +0101000 ++10 3 -10 5 * +Ed + 1e-07 1 1 0 +1 4 0 0 6.28318530717959 +2 8 2 0 0 6.28318530717959 +2 9 3 6 0 6.28318530717959 +2 10 3 7 0 6.28318530717959 +0 + +0101000 ++10 1 -10 1 * +Wi + +0101100 ++9 0 -9 0 -8 2 +8 8 * +Fa +0 1e-07 3 0 + +0101000 ++7 0 * +Wi + +0101100 ++13 0 * +Wi + +0101100 +-8 0 * +Fa +0 1e-07 2 0 + +0101000 ++5 0 +4 0 * +Sh + +0101100 ++11 0 -6 0 +3 2 -3 8 * +So + +1100000 ++2 0 * + ++1 0 \ No newline at end of file diff --git a/test/test_helper.py b/test/test_helper.py new file mode 100755 index 000000000..3f4515f69 --- /dev/null +++ b/test/test_helper.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +# Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE +# +# 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 unittest, sys, os + +class SalomeSession(object): + def __init__(self, script): + import runSalomeOld as runSalome + run_script = "runSalomeOld.py" + if sys.platform == 'win32': + module_dir = os.getenv("KERNEL_ROOT_DIR") + if module_dir: run_script = os.path.join(module_dir, "bin", "salome", run_script) + pass + sys.argv = [run_script] + sys.argv += ["--terminal"] + sys.argv += ["--modules=GEOM"] + sys.argv += ["%s" % script] + if sys.platform == 'win32': + main_module_path = sys.modules['__main__'].__file__ + sys.modules['__main__'].__file__ = '' + clt, d = runSalome.main() + if sys.platform == 'win32': + sys.modules['__main__'].__file__ = main_module_path + return + + def __del__(self): + port = os.getenv('NSPORT') + import killSalomeWithPort + killSalomeWithPort.killMyPort(port) + return + pass + +class MyTest(unittest.TestCase): + def testFunction(self): + SalomeSession(sys.argv[1]) + pass + +unittest.main(argv=sys.argv[:1]) diff --git a/test/test_perf_01.py b/test/test_perf_01.py new file mode 100644 index 000000000..29bf3ef57 --- /dev/null +++ b/test/test_perf_01.py @@ -0,0 +1,47 @@ +from contextlib import contextmanager +from datetime import datetime, timedelta +from inspect import getfile +from os.path import abspath, dirname, join +from unittest import TestCase, main + +import salome +salome.salome_init_without_session() + +from salome.geom import geomBuilder +geom_builder = geomBuilder.New() + +data_dir = abspath(join(dirname(getfile(lambda: None)), 'data')) + +@contextmanager +def no_longer_than(seconds): + """ + Context mananger to check that an execution of given code does not + exceed maximum expected time. + + Example of usage: + + with wait(5): + do_something_that_should_take_no_more_than_five_seconds() + + Arguments: + seconds: max time limit + + Raises: + AssertionError: if time limit is exceeded. + """ + expected = timedelta(seconds=seconds) + start = datetime.now() + yield + end = datetime.now() + spent = end-start + assert spent <= expected, f'Expected maximum delay is exceeded: {spent.total_seconds():.2f} > {seconds:.2f}!' + +class TesselationTest(TestCase): + + def test_performance_01(self): + shape = geom_builder.ImportBREP(join(data_dir, 'test_performance_01.brep')) + with no_longer_than(5): + geom_builder.Tesselate(shape, 0.17, False, 20) + +if __name__ == "__main__": + main() diff --git a/test/tests.set b/test/tests.set new file mode 100644 index 000000000..5464848bd --- /dev/null +++ b/test/tests.set @@ -0,0 +1,22 @@ +# Copyright (C) 2015-2021 CEA/DEN, EDF R&D, OPEN CASCADE +# +# 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 +# + +SET(ALL_TESTS + test_perf_01.py + )