Merge pull request #5701 from maxGimeno/Ctest-Adapt_scripts_to_windows-maxGimeno

Testsuite: Adapt ctest scripts for use with cygwin
This commit is contained in:
Laurent Rineau 2021-06-02 17:20:49 +02:00
commit 5cbadbede6
14 changed files with 154 additions and 51 deletions

View File

@ -74,13 +74,35 @@ function(expand_list_with_globbing list_name)
endfunction() endfunction()
function(cgal_add_compilation_test exe_name) function(cgal_add_compilation_test exe_name)
if(TEST compilation_of__${exe_name}) if(NOT CMAKE_VS_MSBUILD_COMMAND)
return() if(TEST compilation_of__${exe_name})
endif() return()
add_test(NAME "compilation_of__${exe_name}" endif()
COMMAND ${TIME_COMMAND} "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "${exe_name}" --config "$<CONFIG>") add_test(NAME "compilation_of__${exe_name}"
set_property(TEST "compilation_of__${exe_name}" COMMAND ${TIME_COMMAND} "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "${exe_name}" --config "$<CONFIG>")
APPEND PROPERTY LABELS "${PROJECT_NAME}") set_property(TEST "compilation_of__${exe_name}"
APPEND PROPERTY LABELS "${PROJECT_NAME}")
set_property(TEST "compilation_of__${exe_name}"
APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture")
elseif(NOT TARGET compilation_of__${PROJECT_NAME})#CMAKE_VS_MSBUILD_COMMAND
#this target is just a flag, to deal with the scope problem with the tests
add_custom_target(compilation_of__${PROJECT_NAME})
add_test(NAME "compilation_of__${PROJECT_NAME}"
COMMAND ${TIME_COMMAND} "${CMAKE_VS_MSBUILD_COMMAND}" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln" "-m:$ENV{NUMBER_OF_PROCESSORS}" "/t:Build" "/p:Configuration=$<CONFIG>")
set_property(TEST "compilation_of__${PROJECT_NAME}"
APPEND PROPERTY LABELS "${PROJECT_NAME}")
set_property(TEST "compilation_of__${PROJECT_NAME}"
APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture")
set_tests_properties("compilation_of__${PROJECT_NAME}"
PROPERTIES RUN_SERIAL TRUE)
#because of the scope of the tests, this part cannot go in the relevant CMakeLists
if("${PROJECT_NAME}" STREQUAL "Polyhedron_Demo")
set_tests_properties(compilation_of__Polyhedron_Demo PROPERTIES TIMEOUT 2400)
elseif("${PROJECT_NAME}" STREQUAL "Mesh_3_Tests" OR "${PROJECT_NAME}" STREQUAL "Mesh_3_Examples")
set_tests_properties(compilation_of__${PROJECT_NAME} PROPERTIES TIMEOUT 1600)
endif()
endif()#CMAKE_VS_MSBUILD_COMMAND
if(NOT TARGET ALL_CGAL_TARGETS) if(NOT TARGET ALL_CGAL_TARGETS)
add_custom_target( ALL_CGAL_TARGETS ) add_custom_target( ALL_CGAL_TARGETS )
endif() endif()
@ -94,8 +116,6 @@ function(cgal_add_compilation_test exe_name)
set_property(TEST "check_build_system" set_property(TEST "check_build_system"
PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture") PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture")
endif() endif()
set_property(TEST "compilation_of__${exe_name}"
APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture")
if(TARGET CGAL_Qt5_moc_and_resources) # if CGAL_Qt5 was searched, and is header-only if(TARGET CGAL_Qt5_moc_and_resources) # if CGAL_Qt5 was searched, and is header-only
get_property(linked_libraries TARGET "${exe_name}" PROPERTY LINK_LIBRARIES) get_property(linked_libraries TARGET "${exe_name}" PROPERTY LINK_LIBRARIES)
# message(STATUS "${exe_name} depends on ${linked_libraries}") # message(STATUS "${exe_name} depends on ${linked_libraries}")
@ -135,8 +155,13 @@ function(cgal_setup_test_properties test_name)
endif() endif()
if(exe_name) if(exe_name)
set_property(TEST "${test_name}" if(NOT CMAKE_VS_MSBUILD_COMMAND)
APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") set_property(TEST "${test_name}"
APPEND PROPERTY DEPENDS "compilation_of__${exe_name}")
else()#CMAKE_VS_MSBUILD_COMMAND
set_property(TEST "${test_name}"
APPEND PROPERTY DEPENDS "compilation_of__${PROJECT_NAME}")
endif()#CMAKE_VS_MSBUILD_COMMAND
endif() endif()
get_filename_component(_source_dir_abs ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE) get_filename_component(_source_dir_abs ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
@ -217,8 +242,13 @@ function(cgal_setup_test_properties test_name)
if(exe_name) if(exe_name)
set_property(TEST ${test_name} set_property(TEST ${test_name}
APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}") APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}")
set_property(TEST "compilation_of__${exe_name}" if(NOT CMAKE_VS_MSBUILD_COMMAND)
PROPERTY FIXTURES_SETUP "${exe_name}") set_property(TEST "compilation_of__${exe_name}"
PROPERTY FIXTURES_SETUP "${exe_name}")
else()#CMAKE_VS_MSBUILD_COMMAND
set_property(TEST "compilation_of__${PROJECT_NAME}"
PROPERTY FIXTURES_SETUP "${exe_name}")
endif()#CMAKE_VS_MSBUILD_COMMAND
if((ANDROID OR CGAL_RUN_TESTS_THROUGH_SSH) AND NOT TEST push_of__${exe_name}) if((ANDROID OR CGAL_RUN_TESTS_THROUGH_SSH) AND NOT TEST push_of__${exe_name})
if(ANDROID) if(ANDROID)
add_test(NAME "push_of__${exe_name}" add_test(NAME "push_of__${exe_name}"

View File

@ -48,8 +48,8 @@ include(${CGAL_USE_FILE})
find_package( find_package(
Qt5 QUIET Qt5 QUIET
COMPONENTS OpenGL Script COMPONENTS OpenGL Script Widgets
OPTIONAL_COMPONENTS ScriptTools WebSockets) OPTIONAL_COMPONENTS ScriptTools WebSockets Network)
set_package_properties( set_package_properties(
Qt5 PROPERTIES Qt5 PROPERTIES
@ -217,7 +217,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
STATUS "Qt5WebSockets was found. Using WebSockets is therefore possible.") STATUS "Qt5WebSockets was found. Using WebSockets is therefore possible.")
endif() endif()
cgal_add_compilation_test(demo_framework) #compilation_of__demo_framework is defined in polyhedron_demo_macros.cmake
# Let's define `three_EXPORT` during the compilation of `demo_framework`, # Let's define `three_EXPORT` during the compilation of `demo_framework`,
# in addition of `demo_framework_EXPORT` (defined automatically by # in addition of `demo_framework_EXPORT` (defined automatically by
# CMake). That is to deal with the visibility of symbols of # CMake). That is to deal with the visibility of symbols of
@ -241,23 +241,11 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
target_link_libraries(point_dialog PUBLIC Qt5::OpenGL Qt5::Gui Qt5::Script target_link_libraries(point_dialog PUBLIC Qt5::OpenGL Qt5::Gui Qt5::Script
Qt5::Widgets) Qt5::Widgets)
add_custom_target(all_scene_items)
if(BUILD_TESTING)
cgal_add_compilation_test(all_scene_items)
set_property(
TEST compilation_of__all_scene_items
APPEND
PROPERTY DEPENDS compilation_of__demo_framework)
set_property(TEST compilation_of__all_scene_items APPEND PROPERTY TIMEOUT
1700)
endif(BUILD_TESTING)
macro(add_item item_name) macro(add_item item_name)
add_library(${item_name} SHARED ${ARGN}) add_library(${item_name} SHARED ${ARGN})
target_link_libraries( target_link_libraries(
${item_name} PUBLIC demo_framework ${CGAL_LIBRARIES} Qt5::OpenGL Qt5::Gui ${item_name} PUBLIC demo_framework ${CGAL_LIBRARIES} Qt5::OpenGL Qt5::Gui
Qt5::Script Qt5::Widgets) Qt5::Script Qt5::Widgets)
add_dependencies(all_scene_items ${item_name})
add_to_cached_list(CGAL_EXECUTABLE_TARGETS ${item_name}) add_to_cached_list(CGAL_EXECUTABLE_TARGETS ${item_name})
endmacro(add_item) endmacro(add_item)
@ -434,9 +422,9 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
add_to_cached_list(CGAL_EXECUTABLE_TARGETS CGAL_PMP) add_to_cached_list(CGAL_EXECUTABLE_TARGETS CGAL_PMP)
#WS Server #WS Server
if(TARGET Qt5::WebSockets) if(TARGET Qt5::WebSockets AND TARGET Qt5::Network)
add_executable(WS_server Server_ws.cpp) add_executable(WS_server Server_ws.cpp)
target_link_libraries(WS_server PUBLIC Qt5::WebSockets) target_link_libraries(WS_server PUBLIC Qt5::WebSockets Qt5::Widgets Qt5::Network)
message( message(
STATUS "Qt5WebSockets was found. Using WebSockets is therefore possible.") STATUS "Qt5WebSockets was found. Using WebSockets is therefore possible.")
endif() endif()

View File

@ -7,5 +7,5 @@ polyhedron_demo_plugin(camera_positions_plugin
${cameraUI_FILES} ${cameraUI_FILES}
KEYWORDS Viewer) KEYWORDS Viewer)
target_link_libraries( camera_positions_plugin PUBLIC demo_framework) add_dependencies(camera_positions_plugin demo_framework)
target_link_libraries(camera_positions_plugin PUBLIC demo_framework) target_link_libraries(camera_positions_plugin PUBLIC demo_framework)

View File

@ -47,6 +47,12 @@ if(TARGET CGAL::Eigen3_support)
scene_color_ramp scene_color_ramp
CGAL::Eigen3_support) CGAL::Eigen3_support)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__classification_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()
if(TARGET CGAL::Boost_serialization_support AND TARGET CGAL::Boost_iostreams_support) if(TARGET CGAL::Boost_serialization_support AND TARGET CGAL::Boost_iostreams_support)
target_link_libraries(classification_plugin PUBLIC target_link_libraries(classification_plugin PUBLIC
CGAL::Boost_serialization_support CGAL::Boost_serialization_support

View File

@ -8,3 +8,10 @@ target_link_libraries(
polyhedron_demo_plugin(kernel_plugin Kernel_plugin) polyhedron_demo_plugin(kernel_plugin Kernel_plugin)
target_link_libraries(kernel_plugin PUBLIC scene_surface_mesh_item) target_link_libraries(kernel_plugin PUBLIC scene_surface_mesh_item)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__convex_hull_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()

View File

@ -37,3 +37,9 @@ target_link_libraries(
basic_generator_plugin basic_generator_plugin
PUBLIC scene_surface_mesh_item scene_points_with_normal_item PUBLIC scene_surface_mesh_item scene_points_with_normal_item
scene_polylines_item) scene_polylines_item)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__create_obb_mesh_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()

View File

@ -52,6 +52,17 @@ if(TARGET CGAL::Eigen3_support)
DESCRIPTION "A large scale non-linear optimization library." DESCRIPTION "A large scale non-linear optimization library."
PURPOSE "Can be used as a solver in the smoothing plugin.") PURPOSE "Can be used as a solver in the smoothing plugin.")
target_link_libraries(extrude_plugin PUBLIC CGAL::Eigen3_support) target_link_libraries(extrude_plugin PUBLIC CGAL::Eigen3_support)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__extrude_plugin
compilation_of__fairing_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
set_tests_properties(
compilation_of__hole_filling_plugin
compilation_of__smoothing_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()
else() else()
message( message(
STATUS STATUS
@ -153,3 +164,15 @@ polyhedron_demo_plugin(engrave_text_plugin Engrave_text_plugin
target_link_libraries( target_link_libraries(
engrave_text_plugin PUBLIC scene_surface_mesh_item scene_selection_item engrave_text_plugin PUBLIC scene_surface_mesh_item scene_selection_item
scene_polylines_item) scene_polylines_item)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__join_and_split_plugin
compilation_of__selection_plugin
compilation_of__triangulate_facets_plugin
compilation_of__isotropic_remeshing_plugin
compilation_of__random_perturbation_plugin
compilation_of__engrave_text_plugin
compilation_of__degenerated_faces_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()

View File

@ -15,6 +15,13 @@ if(NOT CGAL_DISABLE_GMP)
target_link_libraries( target_link_libraries(
parameterization_plugin PUBLIC scene_surface_mesh_item scene_textured_item parameterization_plugin PUBLIC scene_surface_mesh_item scene_textured_item
scene_selection_item CGAL::Eigen3_support) scene_selection_item CGAL::Eigen3_support)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__parameterization_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()
else() else()
message( message(
STATUS STATUS
@ -27,6 +34,11 @@ if(NOT CGAL_DISABLE_GMP)
${segmentationUI_FILES}) ${segmentationUI_FILES})
target_link_libraries(mesh_segmentation_plugin PUBLIC scene_surface_mesh_item) target_link_libraries(mesh_segmentation_plugin PUBLIC scene_surface_mesh_item)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__mesh_segmentation_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()
qt5_wrap_ui( mesh_simplificationUI_FILES Mesh_simplification_dialog.ui) qt5_wrap_ui( mesh_simplificationUI_FILES Mesh_simplification_dialog.ui)
polyhedron_demo_plugin(mesh_simplification_plugin Mesh_simplification_plugin ${mesh_simplificationUI_FILES}) polyhedron_demo_plugin(mesh_simplification_plugin Mesh_simplification_plugin ${mesh_simplificationUI_FILES})

View File

@ -4,6 +4,13 @@ if(EIGEN3_FOUND AND "${EIGEN3_VERSION}" VERSION_GREATER "3.1.90")
polyhedron_demo_plugin(edit_plugin Edit_polyhedron_plugin Deform_mesh.ui) polyhedron_demo_plugin(edit_plugin Edit_polyhedron_plugin Deform_mesh.ui)
target_link_libraries(edit_plugin PUBLIC scene_surface_mesh_item target_link_libraries(edit_plugin PUBLIC scene_surface_mesh_item
scene_edit_item scene_selection_item) scene_edit_item scene_selection_item)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
set_tests_properties(
compilation_of__edit_plugin
PROPERTIES RESOURCE_LOCK Selection_test_resources)
endif()
else() else()
message( message(
STATUS STATUS

View File

@ -28,18 +28,33 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
PROPERTY LIBRARY_OUTPUT_DIRECTORY PROPERTY LIBRARY_OUTPUT_DIRECTORY
"${CGAL_POLYHEDRON_DEMO_PLUGINS_DIR}") "${CGAL_POLYHEDRON_DEMO_PLUGINS_DIR}")
cgal_add_compilation_test(${plugin_name}) cgal_add_compilation_test(${plugin_name})
if(BUILD_TESTING)
set_property(TEST compilation_of__${plugin_name}
APPEND PROPERTY DEPENDS compilation_of__all_scene_items)
endif()
add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${plugin_name} ) add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${plugin_name} )
# Link with Qt # Link with Qt
target_link_libraries( ${plugin_name} PUBLIC ${QT_LIBRARIES} ) target_link_libraries( ${plugin_name} PUBLIC ${QT_LIBRARIES} )
# Link with the demo_framework # Link with the demo_framework
if(TARGET demo_framework) if(TARGET demo_framework)
target_link_libraries( ${plugin_name} PUBLIC demo_framework) target_link_libraries( ${plugin_name} PUBLIC demo_framework)
add_dependencies(${plugin_name} demo_framework)
if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND)
if(NOT TARGET compilation_of__demo_framework)
# This custom target is useless. It is used only as a flag to
# detect that the test has already been created.
add_custom_target(compilation_of__demo_framework)
add_dependencies( compilation_of__demo_framework demo_framework )
add_test(NAME "compilation_of__demo_framework"
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "demo_framework" --config "$<CONFIG>")
set_property(TEST "compilation_of__demo_framework"
APPEND PROPERTY LABELS "CGAL_build_system")
set_property(TEST "compilation_of__demo_framework"
PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture")
set_property(TEST "compilation_of__demo_framework"
APPEND PROPERTY DEPENDS "compilation_of__CGAL_Qt5_moc_and_resources")
endif()
endif()
else() else()
target_link_libraries( ${plugin_name} PUBLIC Polyhedron_demo_framework) target_link_libraries( ${plugin_name} PUBLIC Polyhedron_demo_framework)
add_dependencies(${plugin_name} Polyhedron_demo_framework)
endif() endif()
# Link with CGAL # Link with CGAL
target_link_libraries( ${plugin_name} PUBLIC ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) target_link_libraries( ${plugin_name} PUBLIC ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} )

View File

@ -1,5 +1,3 @@
#!/bin/bash
#!/bin/bash #!/bin/bash
#usage : script [-c -l -n -s -k] testsuite_dir #usage : script [-c -l -n -s -k] testsuite_dir
@ -23,7 +21,7 @@ export TAR="tar"
export GUNZIP="gunzip" export GUNZIP="gunzip"
export COMPRESSOR="gzip" export COMPRESSOR="gzip"
export CONSOLE_OUTPUT="y" export CONSOLE_OUTPUT="y"
export CGAL_HOME=`pwd` export CGAL_HOME=$(pwd | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//')
export USE_TARGZ="y" export USE_TARGZ="y"
export USE_TARBZ="n" export USE_TARBZ="n"
export CGAL_RELEASE="" export CGAL_RELEASE=""
@ -284,6 +282,8 @@ else
CGAL_DIR=`readlink "${CGAL_HOME}/CGAL-I"` CGAL_DIR=`readlink "${CGAL_HOME}/CGAL-I"`
fi fi
CGAL_DIR=$(echo "$CGAL_DIR" | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//')
CGAL_RELEASE_ID=$(cat last_release_id) CGAL_RELEASE_ID=$(cat last_release_id)
for HOST in ${BUILD_HOSTS}; do for HOST in ${BUILD_HOSTS}; do
if [ "$HOST" != "localhost" ]; then if [ "$HOST" != "localhost" ]; then

View File

@ -259,8 +259,8 @@ run_test_on_platform()
cd "${CGAL_BINARY_DIR}" cd "${CGAL_BINARY_DIR}"
log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}"
if [ -f "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" ]; then if [ -f "${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" ]; then
source "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" source "${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup"
else else
INIT_FILE="${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}.cmake" INIT_FILE="${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}.cmake"
fi fi
@ -294,14 +294,15 @@ run_test_on_platform()
#unsets the limit of 1024 bits for the logs through ssh #unsets the limit of 1024 bits for the logs through ssh
echo "SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000)" > CTestCustom.cmake echo "SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000)" > CTestCustom.cmake
echo "SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000)" >> CTestCustom.cmake echo "SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000)" >> CTestCustom.cmake
CTEST_OPTS="-T Start -T Test --timeout 1200 -j${NUMBER_OF_PROCESSORS} ${DO_NOT_TEST:+-E execution___of__} "
CTEST_OPTS="-T Start -T Test --timeout 1200 ${DO_NOT_TEST:+-E execution___of__}"
if uname | grep -q "CYGWIN"; then if uname | grep -q "CYGWIN"; then
CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS} -V" CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS}"
fi fi
if [ -z "${SHOW_PROGRESS}" ]; then if [ -z "${SHOW_PROGRESS}" ]; then
ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .}> tmp.txt ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}>tmp.txt
else else
ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .} |tee tmp.txt ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}|tee tmp.txt
fi fi
##################### #####################
## GET RESULTS ## ## GET RESULTS ##
@ -321,7 +322,9 @@ run_test_on_platform()
echo "TESTER_NAME ${CGAL_TESTER}" >> "$RESULT_FILE" echo "TESTER_NAME ${CGAL_TESTER}" >> "$RESULT_FILE"
echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$RESULT_FILE" echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$RESULT_FILE"
echo "CGAL_TEST_PLATFORM ${PLATFORM}" >> "$RESULT_FILE" echo "CGAL_TEST_PLATFORM ${PLATFORM}" >> "$RESULT_FILE"
grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log" >> $RESULT_FILE grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log"|sort -u >> $RESULT_FILE
#Use sed to get the content of DEBUG or RELEASE CXX FLAGS so that Multiconfiguration platforms do provide their CXXXFLAGS to the testsuite page (that greps USING CXXFLAGS to get info)
sed -i -E 's/(^-- USING )(DEBUG|RELEASE) (CXXFLAGS)/\1\3/' $RESULT_FILE
echo "------------" >> "$RESULT_FILE" echo "------------" >> "$RESULT_FILE"
#if git branch, create empty scm file for python script #if git branch, create empty scm file for python script
if [ -n "${SCRIPTS_DIR}" ]; then if [ -n "${SCRIPTS_DIR}" ]; then

View File

@ -19,7 +19,7 @@ function(add_Snap_rounding_tests name)
cgal_add_test(${name} TEST_NAME ${test_name} ARGUMENTS ${data_dir}/${file} cgal_add_test(${name} TEST_NAME ${test_name} ARGUMENTS ${data_dir}/${file}
${data_dir}/output_${file}) ${data_dir}/output_${file})
add_test(NAME "${test_name}_compare_results" add_test(NAME "${test_name}_compare_results"
COMMAND ${CMAKE_COMMAND} -E compare_files COMMAND ${CMAKE_COMMAND} -E compare_files --ignore-eol
${data_dir}/output_${file} ${data_dir}/gold_${file}) ${data_dir}/output_${file} ${data_dir}/gold_${file})
cgal_setup_test_properties("${test_name}_compare_results") cgal_setup_test_properties("${test_name}_compare_results")
set_property( set_property(

View File

@ -86,8 +86,14 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(),
print(" {result} {name} in {time} s : {value} ".format(result = "successful " if (t['Status'] == 'passed') else "ERROR: ", name = t['Name'], value = t['ExitValue'] if(t['ExitValue'] != "") else "SUCCESS" , time = t['ExecutionTime']), file=error) print(" {result} {name} in {time} s : {value} ".format(result = "successful " if (t['Status'] == 'passed') else "ERROR: ", name = t['Name'], value = t['ExitValue'] if(t['ExitValue'] != "") else "SUCCESS" , time = t['ExecutionTime']), file=error)
if t['Status'] != 'passed': if t['Status'] != 'passed':
result_for_label='n' result_for_label='n'
elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])warning', t['Output'], flags=re.IGNORECASE): elif t['Output'] != None:
result_for_label='w' for m in re.finditer(r'(.*([^a-zA-Z_,:-])([^\d]\s)warning).*?(\[|\n)', t['Output'], flags=re.IGNORECASE):
n = re.search(r'cmake|cgal', m.group(0), flags=re.IGNORECASE)
if n:
result_for_label='w'
break;
else:
result_for_label='t'
with io.open("{}/ProgramOutput.{}".format(label, t['Name']), mode="w", encoding="utf-8") as f: with io.open("{}/ProgramOutput.{}".format(label, t['Name']), mode="w", encoding="utf-8") as f:
print("{}/ProgramOutput.{}".format(label, t['Name'])) print("{}/ProgramOutput.{}".format(label, t['Name']))