Skip to content
Snippets Groups Projects
ParmesTests.cmake 2.43 KiB
Newer Older
#configure_file(CTestCustom.ctest.in CTestCustom.ctest)
#add_test(NAME parmepy_test COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/BUILD_MAIN_PYTEST)
enable_testing()
find_python_module(pytest REQUIRED)

# ---  We create a new test for each test_XXX.py found in each directory (i.e. module) of parmepy listed below ---
if(WITH_GPU)
  set(py_src_dirs
    ${py_src_dirs} gpu)
endif()

### JM : Bub, GLOB_RECURSE utilse les chemins relatifs avec ../
# foreach(testdir ${py_src_dirs})
#   file(GLOB_RECURSE py_test_files "${test_dir}" RELATIVE_PATH parmepy/*/test_*.py)
# endforeach()

## Build a list of test_*.py files for each directory of parmepy/${py_src_dirs}
set(py_test_files)
foreach(testdir ${py_src_dirs})
  file(GLOB testfiles parmepy/${testdir}/tests/test_*.py)
  set(py_test_files ${py_test_files} ${testfiles})
endforeach()

## Handling doctest in *.py files recursively for each directory of parmepy/${py_src_dirs}
## that names are not __init__ or test_ and that contains '>>>'
set(py_doctest_files)
  file(GLOB testfiles parmepy/${testdir}/*.py)
  foreach(testfile ${testfiles})
    file(STRINGS ${testfile} test_doctest REGEX ">>>")
    if(NOT "${test_doctest}" STREQUAL "")
      set(py_doctest_files ${py_doctest_files} ${testfile})
    endif()
  endforeach()
## Adding tests
message(STATUS "=== TESTS === ")
## Add test_*.py files
foreach(testfile ${py_test_files})
  get_filename_component(testName ${testfile} NAME_WE)
  message(STATUS "Add test ${testfile} ...")
  if(FULL_TEST)
    add_test(NAME ${testName} COMMAND py.test -v --pep8 ${testfile})
  else()
    add_test(${testName} py.test -v ${testfile})
  endif()
## Add files containing doctests
foreach(testfile ${py_doctest_files})
  get_filename_component(testName ${testfile} NAME_WE)
  message(STATUS "Add test from doc doctest_${testName} ...")
  add_test("doctest_${testName}" py.test -v ${testfile})
endforeach()
message(STATUS "===")


#add_test(NAME topology COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 4 py.test -v ${CMAKE_SOURCE_DIR}/parmepy/mpi/tests/test_topology.py)
# add_test(NAME topology COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 1 py.test -v ${CMAKE_SOURCE_DIR}/parmepy/mpi/tests/test_topology.py)
#  add_test(topology py.test -v ${CMAKE_SOURCE_DIR}/parmepy/mpi/tests/test_topology.py)