From a52f7198d23c828e24e0f970e8d12f7189181ed0 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 20 Feb 2019 16:46:28 +0100 Subject: [PATCH 01/20] WIP SSH --- .../cmake/modules/CGAL_add_test.cmake | 47 +++++++++++++++---- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index adf2430ff66..44d54b5133c 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -43,6 +43,11 @@ if(ANDROID) set(ANDROID_DIR_PREFIX /data/local/tmp/) find_program(adb_executable adb) endif() +if(SSH) + set(SSH_DIR_PREFIX /home/pi/CGAL/) + find_program(ssh_executable ssh) + find_program(scp_executable scp) +endif() # Process a list, and replace items contains a file pattern (like # `*.off`) by the sublist that corresponds to the globbing of the @@ -128,6 +133,13 @@ function(cgal_setup_test_properties test_name) APPEND PROPERTY DEPENDS ${PROJECT_NAME}_SetupFixture) set_property(TEST ${PROJECT_NAME}_copy_GMP_MPFR PROPERTY FIXTURES_SETUP ${PROJECT_NAME}) + elseif(SSH) + add_test(NAME ${PROJECT_NAME}_SetupFixture + COMMAND + ${scp_executable} -r + ${CMAKE_CURRENT_SOURCE_DIR} + ${SSH_HOST}:${SSH_DIR_PREFIX}${PROJECT_NAME} + ) else() add_test(NAME ${PROJECT_NAME}_SetupFixture COMMAND @@ -145,6 +157,12 @@ function(cgal_setup_test_properties test_name) ${adb_executable} shell rm -rf ${ANDROID_DIR_PREFIX}${PROJECT_NAME} ) + elseif(SSH) + add_test(NAME ${PROJECT_NAME}_CleanupFixture + COMMAND + ${ssh_executable} ${SSH_HOST} rm -rf + ${SSH_DIR_PREFIX}${PROJECT_NAME} + ) else() add_test(NAME ${PROJECT_NAME}_CleanupFixture COMMAND @@ -159,11 +177,12 @@ function(cgal_setup_test_properties test_name) ${PROJECT_NAME}_CleanupFixture ${PROJECT_NAME}_SetupFixture APPEND PROPERTY LABELS "${PROJECT_NAME}") endif() - if(NOT ANDROID) + if(NOT ANDROID AND NOT SSH) set_property(TEST "${test_name}" PROPERTY WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/__exec_test_dir) endif() + set_property(TEST "${test_name}" APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") if(exe_name) @@ -171,13 +190,22 @@ function(cgal_setup_test_properties test_name) APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}") set_property(TEST "compilation_of__${exe_name}" PROPERTY FIXTURES_SETUP "${exe_name}") - if(ANDROID) - add_test(NAME "push_of__${exe_name}" - COMMAND ${adb_executable} push $ ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY FIXTURES_SETUP "${exe_name}") - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + if(NOT TEST push_of__${exe_name}) + if(ANDROID) + add_test(NAME "push_of__${exe_name}" + COMMAND ${adb_executable} push $ ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY FIXTURES_SETUP "${exe_name}") + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + elseif(SSH) + add_test(NAME "push_of__${exe_name}" + COMMAND ${scp_executable} $ ${SSH_HOST}:${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY FIXTURES_SETUP "${exe_name}") + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + endif() endif() endif() endif() # end CMake 3.7 or later @@ -209,6 +237,7 @@ function(cgal_add_test exe_name) -DCMD:STRING=$ -DCIN:STRING=${cin_file} -DANDROID_DIR_PREFIX=${ANDROID_DIR_PREFIX} + -DSSH_DIR_PREFIX=${SSH_DIR_PREFIX} -DPROJECT_NAME=${PROJECT_NAME} -P "${CGAL_MODULES_DIR}/run_test_with_cin.cmake") set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -242,6 +271,8 @@ function(cgal_add_test exe_name) # message(STATUS "add test: ${exe_name} ${ARGS}") if(ANDROID) add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${adb_executable} shell cd ${ANDROID_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${ANDROID_DIR_PREFIX}${PROJECT_NAME} ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) + elseif(SSH) + add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${SSH_DIR_PREFIX}/lib ${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) else() add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} $ ${ARGS}) endif() From a144940b6d8f5f20aafdb10667bfcfd9a3c1a76a Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Thu, 21 Feb 2019 12:24:17 +0100 Subject: [PATCH 02/20] Use cgal_add_test for every tests of Arrangement_on_surface_2 --- .../test/Arrangement_on_surface_2/cgal_test.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake index fc61895ed77..3a8d2f331c4 100644 --- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake @@ -194,10 +194,10 @@ function(run_test_alt name datafile) endif() cgal_debug_message(STATUS "# run_test_alt(${ARGN})") cgal_debug_message(STATUS "# -> ./${name} ${datafile} ${ARGN}") - set(command ${name} ${datafile} ${ARGN}) string(MAKE_C_IDENTIFIER "${name} ${ARGV4} ${ARGV5}" test_name) - add_test(NAME ${test_name} COMMAND ${command} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + cgal_add_test(${name} + TEST_NAME ${test_name} + ARGUMENTS ${datafile} ${ARGN}) set_property(TEST "${test_name}" APPEND PROPERTY DEPENDS "compilation_of__${name}") if(POLICY CMP0066) # CMake 3.7 or later From c01eddb62aa0c486d6e0046edd3cbfdf527b465e Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 21 Feb 2019 15:47:12 +0100 Subject: [PATCH 03/20] Remove unused LD_LIBRARY_PATH --- Installation/cmake/modules/CGAL_add_test.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index 44d54b5133c..d8694e478e5 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -272,7 +272,7 @@ function(cgal_add_test exe_name) if(ANDROID) add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${adb_executable} shell cd ${ANDROID_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${ANDROID_DIR_PREFIX}${PROJECT_NAME} ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) elseif(SSH) - add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${SSH_DIR_PREFIX}/lib ${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) + add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && ${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) else() add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} $ ${ARGS}) endif() From 1e17519384d447b18e2a635c3bab670946e4dfaa Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Thu, 21 Feb 2019 15:49:48 +0100 Subject: [PATCH 04/20] Fixes - The dependencies of push_of__ tests were not correct. - Fix the handling of tests with .cin, when ssh/scp are used. --- .../cmake/modules/CGAL_add_test.cmake | 25 +++++++++++-------- .../cmake/modules/run_test_with_cin.cmake | 9 +++++-- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index d8694e478e5..ac81fa2e2d6 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -194,19 +194,17 @@ function(cgal_setup_test_properties test_name) if(ANDROID) add_test(NAME "push_of__${exe_name}" COMMAND ${adb_executable} push $ ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY FIXTURES_SETUP "${exe_name}") - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") elseif(SSH) add_test(NAME "push_of__${exe_name}" - COMMAND ${scp_executable} $ ${SSH_HOST}:${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY FIXTURES_SETUP "${exe_name}") - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + COMMAND ${scp_executable} $ ${SSH_HOST}:${SSH_DIR_PREFIX}${PROJECT_NAME}/) endif() + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") endif() + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY FIXTURES_SETUP "${exe_name}") + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") endif() endif() # end CMake 3.7 or later endfunction(cgal_setup_test_properties) @@ -232,11 +230,18 @@ function(cgal_add_test exe_name) # message("Add test ${test_name}") set(cin_file "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin") if(NOT ARGS AND EXISTS ${cin_file}) + if(ANDROID OR SSH) + set(cmd ${exe_name}) + else() + set(cmd $) + endif() add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${CMAKE_COMMAND} - -DCMD:STRING=$ + -DCMD:STRING=${cmd} -DCIN:STRING=${cin_file} -DANDROID_DIR_PREFIX=${ANDROID_DIR_PREFIX} + -DSSH=${SSH} + -DSSH_HOST=${SSH_HOST} -DSSH_DIR_PREFIX=${SSH_DIR_PREFIX} -DPROJECT_NAME=${PROJECT_NAME} -P "${CGAL_MODULES_DIR}/run_test_with_cin.cmake") diff --git a/Installation/cmake/modules/run_test_with_cin.cmake b/Installation/cmake/modules/run_test_with_cin.cmake index 1877beb096d..65615d61c51 100644 --- a/Installation/cmake/modules/run_test_with_cin.cmake +++ b/Installation/cmake/modules/run_test_with_cin.cmake @@ -1,4 +1,4 @@ -if(NOT CMD OR NOT EXISTS ${CMD}) +if(NOT CMD OR (NOT ANDROID AND NOT SSH AND NOT EXISTS ${CMD})) message(FATAL_ERROR "The variable `CMD` should be defined to the test program to run!") endif() @@ -10,7 +10,12 @@ endif() if(ANDROID) execute_process( - COMMAND adb shell "cd ${ANDROID_DIR_PREFIX}${PROJECT_NAME} && ${ANDROID_DIR_PREFIX}${CMD}" + COMMAND adb shell "cd ${ANDROID_DIR_PREFIX}${PROJECT_NAME} && ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${CMD}" + INPUT_FILE ${CIN} + RESULT_VARIABLE error_result) +elseif(SSH) + execute_process( + COMMAND ssh ${SSH_HOST} "cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${SSH_DIR_PREFIX}/lib ${SSH_DIR_PREFIX}${PROJECT_NAME}/${CMD}" INPUT_FILE ${CIN} RESULT_VARIABLE error_result) else() From 2ddee24f1a8e597552dfb8a8770d0ff911ef14ae Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Thu, 21 Feb 2019 16:09:42 +0100 Subject: [PATCH 05/20] Fix the dependencies --- Installation/cmake/modules/CGAL_add_test.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index ac81fa2e2d6..df720a50497 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -200,11 +200,11 @@ function(cgal_setup_test_properties test_name) endif() set_property(TEST "push_of__${exe_name}" APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") endif() set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY FIXTURES_SETUP "${exe_name}") - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") + APPEND PROPERTY FIXTURES_SETUP "${test_name}") endif() endif() # end CMake 3.7 or later endfunction(cgal_setup_test_properties) From 13e7f7633c01a4fd935c463d71a16402cb187632 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 21 Feb 2019 16:56:34 +0100 Subject: [PATCH 06/20] Fix push__of_ in arrangement --- Installation/cmake/modules/CGAL_add_test.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index df720a50497..aa92d40169b 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -203,8 +203,8 @@ function(cgal_setup_test_properties test_name) set_property(TEST "push_of__${exe_name}" APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") endif() - set_property(TEST "push_of__${exe_name}" - APPEND PROPERTY FIXTURES_SETUP "${test_name}") + set_property(TEST "${test_name}" + APPEND PROPERTY DEPENDS "push_of__${exe_name}") endif() endif() # end CMake 3.7 or later endfunction(cgal_setup_test_properties) From 5376673151bd1b5b452fa52cc2b511af14f0c224 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Thu, 21 Feb 2019 17:00:53 +0100 Subject: [PATCH 07/20] Fix the testsuite of Arrangement_on_surface_2 --- .../Arrangement_on_surface_2/cgal_test.cmake | 14 ---------- .../cmake/modules/CGAL_add_test.cmake | 28 ++----------------- 2 files changed, 3 insertions(+), 39 deletions(-) diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake index 3a8d2f331c4..4753352d565 100644 --- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/cgal_test.cmake @@ -198,20 +198,6 @@ function(run_test_alt name datafile) cgal_add_test(${name} TEST_NAME ${test_name} ARGUMENTS ${datafile} ${ARGN}) - set_property(TEST "${test_name}" - APPEND PROPERTY DEPENDS "compilation_of__${name}") - if(POLICY CMP0066) # CMake 3.7 or later - set_tests_properties("${test_name}" - PROPERTIES - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/__exec_test_dir - FIXTURES_REQUIRED ${PROJECT_NAME}) - endif() - cgal_debug_message(STATUS "# .. depends on compilation_of__${name}") - -# message(" successful execution of ${name} ${ARGV4} ${ARGV5}") - set_property(TEST "${test_name}" - APPEND PROPERTY LABELS "${PROJECT_NAME}") - cgal_debug_message(STATUS "add test \"${test_name}\": ${name} ${datafile} ${ARGN}") endfunction() function(run_trapped_test name datafile) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index aa92d40169b..4aef6c31b75 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -190,7 +190,7 @@ function(cgal_setup_test_properties test_name) APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}") set_property(TEST "compilation_of__${exe_name}" PROPERTY FIXTURES_SETUP "${exe_name}") - if(NOT TEST push_of__${exe_name}) + if((ANDROID OR SSH) AND NOT TEST push_of__${exe_name}) if(ANDROID) add_test(NAME "push_of__${exe_name}" COMMAND ${adb_executable} push $ ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) @@ -200,11 +200,11 @@ function(cgal_setup_test_properties test_name) endif() set_property(TEST "push_of__${exe_name}" APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY FIXTURES_SETUP "${exe_name}") set_property(TEST "push_of__${exe_name}" APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") endif() - set_property(TEST "${test_name}" - APPEND PROPERTY DEPENDS "push_of__${exe_name}") endif() endif() # end CMake 3.7 or later endfunction(cgal_setup_test_properties) @@ -283,28 +283,6 @@ function(cgal_add_test exe_name) endif() endif() cgal_setup_test_properties(${test_name} ${exe_name}) - return() - - if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin") - set(ARGS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin") - elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV2}.cmd") - file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV2}.cmd" - ARGS LIMIT_COUNT 1) - elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV1}.cmd") - file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/${ARGV1}.cmd" - ARGS LIMIT_COUNT 1) - elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cmd") - file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cmd" - ARGS LIMIT_COUNT 1) - # TODO: handle multi-lines .cmd files - # see https://github.com/CGAL/cgal/pull/1295/files/c65d3abe17bb3e677b8077996cdaf8672f9c4c6f#r71705451 - endif() - string(REPLACE ";" " " args_str "${ARGS}") - add_test(NAME ${test_name} - COMMAND ${TIME_COMMAND} $ ${ARGS} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - set_property(TEST "${test_name}" - APPEND PROPERTY LABELS "${PROJECT_NAME}") endfunction() function(CGAL_add_compilation_tests_for_all_targets) From 42f3928de3d7e9162581638b136f5483e997a260 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 22 Feb 2019 16:00:53 +0100 Subject: [PATCH 08/20] Fix CGAL_DISABLE_GMP --- Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake index 9171c8a813d..776e34aac53 100644 --- a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake @@ -84,7 +84,9 @@ function(CGAL_setup_CGAL_dependencies target) else() set(keyword PUBLIC) endif() - if(NOT CGAL_DISABLE_GMP) + if(CGAL_DISABLE_GMP) + target_compile_definitions(${target} ${keyword} CGAL_DISABLE_GMP=1) + else() use_CGAL_GMP_support(${target} ${keyword}) set(CGAL_USE_GMP TRUE CACHE INTERNAL "CGAL library is configured to use GMP") set(CGAL_USE_MPFR TRUE CACHE INTERNAL "CGAL library is configured to use MPFR") From a85c1f0ac4292754abb73c66e24c6a3dd80be03f Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 27 Feb 2019 15:07:31 +0100 Subject: [PATCH 09/20] update python script --- Testsuite/test/parse-ctest-dashboard-xml.py | 31 ++++++--------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index 2d3e8a9eab2..fabf7702c55 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -4,9 +4,9 @@ import xml.etree.ElementTree as ET import os import errno import re +import sys result_file_name='{dir}/results_{tester}_{platform}.txt' -result_info_file_name='{dir}/results_{tester}_{platform}.info' test_report_filename='{dir}/TestReport_{tester}_{platform}' xml = open("Test.xml", 'rb').read(); @@ -31,6 +31,8 @@ for t in testlist: tests = {} labels = set() +tester_name=sys.argv[1] +platform_name=sys.argv[2] for t in testing.findall('Test'): tests[tests_ids[t.find('FullName').text]] = \ { \ @@ -40,23 +42,6 @@ for t in testing.findall('Test'): "Labels": [l.text for l in t.find('Labels').findall('Label')] if t.find('Labels') is not None else ['UNKNOWN_LABEL'], \ } -print(""" -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -""", file=open(result_info_file_name.format(dir=os.getcwd(), - tester="me", - platform="Mon Linux"), 'w')) - tests_per_label = defaultdict(list) for t_id in range(0, len(tests)): t = tests[t_id] @@ -65,8 +50,8 @@ for t_id in range(0, len(tests)): tests_per_label[label].append(t) with open_file_create_dir(result_file_name.format(dir=os.getcwd(), - tester="me", - platform="Mon Linux"), 'w') as results: + tester=tester_name, + platform=platform_name), 'a+') as results: for label, tests in tests_per_label.items(): result_for_label='y' with open_file_create_dir("{}/error.txt".format(label), 'w') as error: @@ -86,15 +71,15 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(), for label, tests in tests_per_label.items(): with open_file_create_dir(test_report_filename.format(dir=label, - tester="me", - platform="Mon Linux"), 'w') as label_report: + tester=tester_name, + platform=platform_name), 'w') as label_report: print(""" ------------------------------------------------------------------ - Error output from platform {platform} ------------------------------------------------------------------ {error_txt} -""" .format(platform="Mon Linux", +""" .format(platform=platform_name, error_txt=open("{}/error.txt".format(label), 'r').read()), file=label_report) for t in tests: filename="{}/ProgramOutput.{}".format(label, t['Name']) From 8852f65bc36abe22596b98b49f8c89a6a8abf1ba Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 27 Feb 2019 15:11:33 +0100 Subject: [PATCH 10/20] WIP: handle the gzip compression and base64 encoding --- Testsuite/test/parse-ctest-dashboard-xml.py | 28 +++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index fabf7702c55..0f1bacff715 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -5,20 +5,27 @@ import os import errno import re import sys +import base64 +import zlib +import gzip result_file_name='{dir}/results_{tester}_{platform}.txt' -test_report_filename='{dir}/TestReport_{tester}_{platform}' +result_info_file_name='{dir}/results_{tester}_{platform}.info' +test_report_filename='{dir}/TestReport_{tester}_{platform}.gz' -xml = open("Test.xml", 'rb').read(); +xml = open("Test.xml", 'rb').read() -def open_file_create_dir(filename, mode): +def open_file_create_dir(filename, mode, *args, **kwargs): if not os.path.exists(os.path.dirname(filename)): try: os.makedirs(os.path.dirname(filename)) except OSError as exc: # Guard against race condition if exc.errno != errno.EEXIST: raise - return open(filename, mode) + if kwargs.get('gzip', None) == True: + return gzip.open(filename, mode) + else: + return open(filename, mode) root=ET.fromstring(xml) testing = root.find('Testing') @@ -34,11 +41,18 @@ labels = set() tester_name=sys.argv[1] platform_name=sys.argv[2] for t in testing.findall('Test'): + t_output = t.find('Results').find('Measurement').find('Value') + t_output_value = t_output.text + if t_output_value != None: + if 'encoding' in t_output.attrib and t_output.attrib['encoding'] == 'base64': + t_output_value = base64.standard_b64decode(t_output_value) + if 'compression' in t_output.attrib and t_output.attrib['compression'] == 'gzip': + t_output_value = zlib.decompress(t_output_value).decode("utf-8") tests[tests_ids[t.find('FullName').text]] = \ { \ "Name": t.find('Name').text, \ "Status": t.attrib['Status'], \ - "Output": t.find('Results').find('Measurement').find('Value').text, \ + "Output": t_output_value, \ "Labels": [l.text for l in t.find('Labels').findall('Label')] if t.find('Labels') is not None else ['UNKNOWN_LABEL'], \ } @@ -59,8 +73,8 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(), print(" {} {}".format("successful " if (t['Status'] == 'passed') else "ERROR: ", t['Name']), file=error) if t['Status'] != 'passed': result_for_label='n' - elif t['Output'] != None and re.match(r'(^|[^a-zA-Z_,:-])warning', t['Output']): - result_for_label='y' + elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])warning', t['Output'], flags=re.IGNORECASE): + result_for_label='w' with open("{}/ProgramOutput.{}".format(label, t['Name']), 'w') as f: f.write(t['Output'] if t['Output'] != None else "") From 783d4a7188e592687da1655ed71b35fa99df6560 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 27 Feb 2019 16:04:12 +0100 Subject: [PATCH 11/20] Fix python script --- Testsuite/test/parse-ctest-dashboard-xml.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index 0f1bacff715..12eb5ecfa31 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -11,7 +11,7 @@ import gzip result_file_name='{dir}/results_{tester}_{platform}.txt' result_info_file_name='{dir}/results_{tester}_{platform}.info' -test_report_filename='{dir}/TestReport_{tester}_{platform}.gz' +test_report_filename='{dir}/TestReport_{tester}_{platform}' xml = open("Test.xml", 'rb').read() @@ -59,7 +59,8 @@ for t in testing.findall('Test'): tests_per_label = defaultdict(list) for t_id in range(0, len(tests)): t = tests[t_id] - for label in t['Labels']: + for l in t['Labels']: + label = l.replace("_Tests","") labels.add(label) tests_per_label[label].append(t) From 902070d4d112d82890fadd001737de4f18a290cd Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 28 Feb 2019 16:32:01 +0100 Subject: [PATCH 12/20] Add a label for push__oh_ --- Installation/cmake/modules/CGAL_add_test.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index 4aef6c31b75..ac4019e49ea 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -204,6 +204,8 @@ function(cgal_setup_test_properties test_name) APPEND PROPERTY FIXTURES_SETUP "${exe_name}") set_property(TEST "push_of__${exe_name}" APPEND PROPERTY FIXTURES_REQUIRED "${PROJECT_NAME}") + set_property(TEST "push_of__${exe_name}" + APPEND PROPERTY LABELS "${PROJECT_NAME}") endif() endif() endif() # end CMake 3.7 or later From 17079b0d53904555cf3b45b16af37de7f9b54179 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 1 Mar 2019 15:43:58 +0100 Subject: [PATCH 13/20] Kill remote process if ssh is killed (ctrl+c or timeout) --- Installation/cmake/modules/CGAL_add_test.cmake | 3 ++- Testsuite/test/parse-ctest-dashboard-xml.py | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index ac4019e49ea..a86003363f9 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -279,7 +279,8 @@ function(cgal_add_test exe_name) if(ANDROID) add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${adb_executable} shell cd ${ANDROID_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${ANDROID_DIR_PREFIX}${PROJECT_NAME} ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) elseif(SSH) - add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && ${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) + STRING(REPLACE ";" " " arg_str "${ARGS}") + add_test(NAME ${test_name} COMMAND bash -c "${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} \"cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && ${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${arg_str} 3< <(cat; kill -INT 0)\" <&1") else() add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} $ ${ARGS}) endif() diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index 12eb5ecfa31..5e4354345de 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -2,6 +2,7 @@ from __future__ import print_function from collections import defaultdict import xml.etree.ElementTree as ET import os +import io import errno import re import sys @@ -77,7 +78,8 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(), elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])warning', t['Output'], flags=re.IGNORECASE): result_for_label='w' - with open("{}/ProgramOutput.{}".format(label, t['Name']), 'w') as f: + with io.open("{}/ProgramOutput.{}".format(label, t['Name']), mode="w", encoding="utf-8") as f: + print("{}/ProgramOutput.{}".format(label, t['Name'])) f.write(t['Output'] if t['Output'] != None else "") From 3430223a9a8b0f859b7fb3d385d48946958e7074 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 5 Mar 2019 16:42:43 +0100 Subject: [PATCH 14/20] WIP --- .../run_testsuite_with_cmake | 350 ++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 Scripts/developer_scripts/run_testsuite_with_cmake diff --git a/Scripts/developer_scripts/run_testsuite_with_cmake b/Scripts/developer_scripts/run_testsuite_with_cmake new file mode 100644 index 00000000000..67bb9c339e2 --- /dev/null +++ b/Scripts/developer_scripts/run_testsuite_with_cmake @@ -0,0 +1,350 @@ +#!/bin/bash +#usage : script [-c -l -n -s -k] testsuite_dir + +########################## +#### LAUNCH CTEST #### +########################## + + +# ---------------------------------------------------------------------------------------- +# function to print the value of variable $1 +# ---------------------------------------------------------------------------------------- +value_of() +{ + _value=`eval "printf '$'${1}"` + eval "printf \"${_value}\"" +} + +# ---------------------------------------------------------------------------------------- +# produce a string containing the actual date/time +# (used to identify files) +# ---------------------------------------------------------------------------------------- +datestr() +{ + date +%d%m%Y%H%M +} + + +# ---------------------------------------------------------------------------------------- +# Return 0 if $1 exists in the list $2, otherwise returns non-zero. +# ---------------------------------------------------------------------------------------- +is_in_list() +{ + ELEMENT=${1} + LIST=${2} + + for E in ${LIST} ; do + if [ "${E}" = "${ELEMENT}" ] ; then + return 0 + fi + done + + return 1 +} + + +# ---------------------------------------------------------------------------------------- +# Uniquely adds $1 to the global, space-separated list $PLATFORMS +# (if it is not in the list already) +# ---------------------------------------------------------------------------------------- +add_to_platforms() +{ + if ! is_in_list "${1}" "${PLATFORMS}" ; then + PLATFORMS="${PLATFORMS} ${1}" + fi +} + +# ---------------------------------------------------------------------------------------- +# Uniquely adds to the global, space-separated list $PLATFORMS all the directories found +# under ${REFERENCE_PLATFORMS_DIR} +# ---------------------------------------------------------------------------------------- +collect_all_reference_platforms() +{ + log "${ACTUAL_LOGFILE}" "Indicated to build on ALL platform folders" + if [ -d "${REFERENCE_PLATFORMS_DIR}" ]; then + cd "${REFERENCE_PLATFORMS_DIR}" + for PLATFORM in * ; do + if [ -d "${PLATFORM}" ]; then + add_to_platforms "${PLATFORM}" + fi + done + else + log "${ACTUAL_LOGFILE}" "WARNING: Invalid reference platforms directory: ${REFERENCE_PLATFORMS_DIR}" + fi +} + +# ---------------------------------------------------------------------------------------- +# Uniquely adds to the global, space-separated list $PLATFORMS all the directories found +# under $1 +# ---------------------------------------------------------------------------------------- +collect_all_current_platforms() +{ + PLATFORMS="" + cd "${1}" + for PLATFORM in * ; do + if [ -d "${PLATFORM}" ]; then + PLATFORMS="${PLATFORMS} ${PLATFORM}" + fi + done +} + +# ---------------------------------------------------------------------------------------- +# Uniquely adds to the global, space-separated list $PLATFORMS all the directory names +# listed in the space-separated list $1 +# NOTE: If any such name is "all", it's NOT added as a platform and the flag +# USE_REFERENCE_PLATFORMS is set instead. +# ---------------------------------------------------------------------------------------- +build_platforms_list() +{ + for LOCAL_PLATFORM in $1; do + if [ "${LOCAL_PLATFORM}" = "all" ] ; then + USE_REFERENCE_PLATFORMS='y' + else + add_to_platforms "${LOCAL_PLATFORM}" + fi + done +} + + +# ---------------------------------------------------------------------------------------- +# Sets up the variables indicating the directories to use. +# Crates all platform directories under the current release binary folder. +# ---------------------------------------------------------------------------------------- +setup_dirs() +{ + # dir for the actual release + CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` + + CGAL_TEST_DIR=${CGAL_DIR}/test + + if [ ! -d "${CGAL_DIR}/cmake" ]; then + mkdir "${CGAL_DIR}/cmake" + log "${ACTUAL_LOGFILE}" "Creating ${CGAL_DIR}/cmake" + fi + + if [ ! -d "${CGAL_DIR}/cmake/platforms" ]; then + mkdir "${CGAL_DIR}/cmake/platforms" + log "${ACTUAL_LOGFILE}" "Creating ${CGAL_DIR}/cmake/platforms" + fi + + CGAL_RELEASE_DIR="${CGAL_DIR}" + + CGAL_RELEASE_ID=`basename "${CGAL_RELEASE_DIR}"` + + #todo : too complicated for nothing. Take a simpler outsource build dir + CGAL_BINARY_DIR_BASE=${CGAL_RELEASE_DIR}/cmake/platforms + + log "${ACTUAL_LOGFILE}" "Release to test ${CGAL_RELEASE_DIR}" + log "${ACTUAL_LOGFILE}" "CGAL_RELEASE_ID=${CGAL_RELEASE_ID}" + + if [ ! -r "${LOGS_DIR}" ]; then + mkdir "$LOGS_DIR" + fi + + # + # Collects the list of platform directories to build and test on + # + # The global variable PLATFORMS contains all the platform directories for all hosts + # as indicated in .autocgalrc. + # If .autocgalrc says "all" in any entry for BUILD_ON_* or COMPILERS_*, the platform + # directories existing in the reference release are added to $PLATFORMS + # + PLATFORMS="" + + for HOST in ${BUILD_HOSTS}; do + + build_platforms_list "`value_of BUILD_ON_${HOST}`" + build_platforms_list "`value_of COMPILERS_${HOST}`" + + done + + if [ -n "${USE_REFERENCE_PLATFORMS}" ]; then + collect_all_reference_platforms + fi + + #todo + PLATFORMS="raspberry" + for PLATFORM in ${PLATFORMS}; do + + CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} + + if [ ! -d "${CGAL_BINARY_DIR}" ]; then + log "${ACTUAL_LOGFILE}" "Creating platform directory ${CGAL_BINARY_DIR}" + mkdir "${CGAL_BINARY_DIR}" + fi + + done +} + + +# ---------------------------------------------------------------------------------------- +# function to put result files on the web +# $1 = source filename (full path) +# $2 = target filename (basename only) +# ---------------------------------------------------------------------------------------- +put_on_web() +{ + log "${ACTUAL_LOGFILE}" "Uploading results ${1} to $UPLOAD_RESULT_DESTINATION/$2" + + "$SCP" "${1}" "$UPLOAD_RESULT_DESTINATION/$2" >> "${ACTUAL_LOGFILE}" +} + + + +publish_results() +{ + HOST=${1} + PLATFORM=${2} + # + # collect results and put them on the web + # + cd "${CGAL_TEST_DIR}" + + log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "COLLECTING RESULTS ${PLATFORM}-${HOST}" + + # If this file does not exist results collection failed. Fake a results so this fact is itself reported + if [ ! -f "results_${CGAL_TESTER}_${PLATFORM}.txt" ]; then + log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Results collection for tester ${CGAL_TESTER} and platform ${PLATFORM} failed!" + echo "Results collection failed!" >> "results_${CGAL_TESTER}_${PLATFORM}.txt" + ${TAR} cf "results_${CGAL_TESTER}_${PLATFORM}.tar" "results_${CGAL_TESTER}_${PLATFORM}.txt" + ${COMPRESSOR} -9f "results_${CGAL_TESTER}_${PLATFORM}.tar" + fi + + ${TAR} cf "test_results-${HOST}_${PLATFORM}.tar" "results_${CGAL_TESTER}_${PLATFORM}.tar.gz" "results_${CGAL_TESTER}_${PLATFORM}.txt" + ${COMPRESSOR} -9f "test_results-${HOST}_${PLATFORM}.tar" + COMPILER=`printf "%s" "$2" | tr -c '[A-Za-z0-9]./[=-=]*_\'\''\":?() ' 'x'` + FILENAME="${CGAL_RELEASE_ID}_${CGAL_TESTER}-test`datestr`-${COMPILER}-cmake.tar.gz" + LOGFILENAME="${CGAL_RELEASE_ID}-log`datestr`-${HOST}.gz" + ${COMPRESSOR} -9f "${ACTUAL_LOGFILE}.test.${PLATFORM}" + mv "${ACTUAL_LOGFILE}.test.${PLATFORM}.gz" "${LOGS_DIR}/${LOGFILENAME}" + + log_done "${ACTUAL_LOGFILE}.test.${PLATFORM}" + + log "${ACTUAL_LOGFILE}" "Test results: ${CGAL_TEST_DIR}/test_results-${HOST}_${PLATFORM}.tar.gz" + + if [ -z "${DO_NOT_UPLOAD}" ]; then + log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "PUTTING RESULTS ON THE WEB" + put_on_web "test_results-${HOST}_${PLATFORM}.tar.gz" "${FILENAME}" + if [ -e "demos_${CGAL_TESTER}_${PLATFORM}.tar.gz" ]; then + put_on_web "demos_${CGAL_TESTER}_${PLATFORM}.tar.gz" "demos-${FILENAME}" + fi + log_done "${ACTUAL_LOGFILE}" + fi + +} +run_test_on_host_and_platform() +{ + HOST=${1} + PLATFORM=${2} + + NUMBER_OF_PROCESSORS="`value_of PROCESSORS_${HOST}`" + CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} + if [ -d "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}" ] ; then + if [ -f "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/init.cmake" ]; then + INIT_FILE="${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/init.cmake" + fi + fi + cd "${CGAL_BINARY_DIR}" + log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" + #todo : check if that still works + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=OFF -DWITH_tests=OFF -DWITH_CGAL_Qt5=OFF -DCGAL_HEADER_ONLY=ON $CGAL_DIR > installation.log + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' VERBOSE=1 $CGAL_DIR + LIST_TEST_FILE="${CGAL_ROOT}/list_test_packages" + LIST_TEST_PACKAGES=$(source ${LIST_TEST_FILE}) + TO_TEST="" + INIT="" + for pkg in $LIST_TEST_PACKAGES; do + if [ -z "$INIT" ]; then + TO_TEST=$pkg + INIT="y" + else + TO_TEST="${TO_TEST}|$pkg" + fi + done + NUMBER_OF_PROCESSORS="`value_of PROCESSORS_localhost`" + + CTEST_OPTS="-T Start -T Test -j${NUMBER_OF_PROCESSORS} ${DO_NOT_TEST:+-E execution___of__} --timeout 1200" + if [ -z "${SHOW_PROGRESS}" ]; then + ctest ${CTEST_OPTS} ${TO_TEST:+-L ${TO_TEST} } ${KEEP_TESTS:+-FC .}> tmp.txt + else + ctest ${CTEST_OPTS} ${TO_TEST:+-L ${TO_TEST}} ${KEEP_TESTS:+-FC .}|tee tmp.txt + fi + ##################### + ## GET RESULTS ## + ##################### + TAG_DIR=$(awk '/^Create new tag: /{print $4F}' tmp.txt) + cd Testing/${TAG_DIR} + #python $CGAL_DIR/test/parse-ctest-dashboard-xml.py $CGAL_TESTER $PLATFORM + RESULT_FILE=./"results_${CGAL_TESTER}_${PLATFORM}.txt" + rm -f "$RESULT_FILE" + touch "$RESULT_FILE" + sed -n '/CGAL_VERSION /s/#define //p' < "$CGAL_DIR/include/CGAL/version.h" >> "$RESULT_FILE" + echo "TESTER ${CGAL_TESTER}" >> "$RESULT_FILE" + echo "TESTER_NAME ${CGAL_TESTER_NAME}" >> "$RESULT_FILE" + echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$RESULT_FILE" + echo "CGAL_TEST_PLATFORM ${PLATFORM}" >> "$RESULT_FILE" + #echo "General installation log file: ${GENERAL_BUILD_LOGFILE}" >> "$RESULT_FILE" + #echo "Host-specific installation log file: ../installation.log" >> "$RESULT_FILE" + grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log" >> $RESULT_FILE + echo "------------" >> "$RESULT_FILE" + python3 /home/gimeno/CGAL/Testsuite/test/parse-ctest-dashboard-xml.py $CGAL_TESTER $PLATFORM + + for file in $(ls|grep _Tests); do + mv $file "$(echo "$file" | sed 's/_Tests//g')" + done + OUTPUT_FILE=results_${CGAL_TESTER}_${PLATFORM}.tar + TEST_REPORT="TestReport_${CGAL_TESTER}_${PLATFORM}" + rm -f $OUTPUT_FILE $OUTPUT_FILE.gz + tar cf $OUTPUT_FILE results_${CGAL_TESTER}_${PLATFORM}.txt */"$TEST_REPORT" + echo + gzip -9f $OUTPUT_FILE + cp "${OUTPUT_FILE}.gz" "results_${CGAL_TESTER}_${PLATFORM}.txt" "${CGAL_TEST_DIR}" +} +# ---------------------------------------------------------------------------------------- +# Runs the test on the host $1 +# ---------------------------------------------------------------------------------------- +run_test_on_host() +{ + HOST=${1} + + #todo + PLATFORMS=`value_of COMPILERS_${HOST}` + PLATFORMS="raspberry" + if [ "${PLATFORMS}" = "all" ]; then + collect_all_current_platforms "${CGAL_BINARY_DIR_BASE}" + fi + + for PLATFORM in ${PLATFORMS}; do + run_test_on_host_and_platform "${HOST}" "${PLATFORM}" + publish_results "${HOST}" "${PLATFORM}" + done +} + + +#setup dir +setup_dirs + + +# Setup cmake +if uname | grep -q "CYGWIN"; then + JOM="`which jom`" + if [ -e "$JOM" ]; then + CMAKE_GENERATOR='-GNMake Makefiles JOM' + MAKE_CMD='jom' + else + CMAKE_GENERATOR='-GNMake Makefiles' + MAKE_CMD='nmake' + fi + IS_CYGWIN='y' +else + MAKE_CMD='make' +fi + +log "${ACTUAL_LOGFILE}" "running the testsuites" +if [ -n "${CONSOLE_OUTPUT}" ]; then + printf "\n-------------------------------------------------------\n" +fi + +for HOST in ${BUILD_HOSTS}; do + run_test_on_host ${HOST} & +done From aa76cd02b6d79fd0386310ae38719214eaab4fc4 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 6 Mar 2019 14:17:48 +0100 Subject: [PATCH 15/20] Use a single script for testsuite with or without docker --- .../CGAL_SetupCGAL_Qt5Dependencies.cmake | 2 +- .../developer_scripts/global_run_testsuite.sh | 261 ++++++++++++++++++ Scripts/developer_scripts/log.sh | 25 ++ .../run_testsuite_with_cmake | 43 +-- 4 files changed, 310 insertions(+), 21 deletions(-) create mode 100644 Scripts/developer_scripts/global_run_testsuite.sh create mode 100644 Scripts/developer_scripts/log.sh diff --git a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake index 804fff7b519..dae96c444e6 100644 --- a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake @@ -52,7 +52,7 @@ if(NOT CGAL_Qt5_MISSING_DEPS) include(${CMAKE_CURRENT_LIST_DIR}/CGAL_Qt5_moc_and_resource_files.cmake) - if(CGAL_HEADER_ONLY AND (WITH_demos OR WITH_examples OR NOT CGAL_BUILDING_LIBS) AND NOT TARGET CGAL_Qt5_moc_and_resources) + if(CGAL_HEADER_ONLY AND (WITH_demos OR WITH_examples OR WITH_tests OR NOT CGAL_BUILDING_LIBS) AND NOT TARGET CGAL_Qt5_moc_and_resources) add_library(CGAL_Qt5_moc_and_resources STATIC ${_CGAL_Qt5_MOC_FILES_private} ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsViewNavigation.h diff --git a/Scripts/developer_scripts/global_run_testsuite.sh b/Scripts/developer_scripts/global_run_testsuite.sh new file mode 100644 index 00000000000..f945a0a107a --- /dev/null +++ b/Scripts/developer_scripts/global_run_testsuite.sh @@ -0,0 +1,261 @@ +#!/bin/bash + +#!/bin/bash +#usage : script [-c -l -n -s -k] testsuite_dir + +########################## +#### LAUNCH CTEST #### +########################## + +export SHOW_PROGRESS="" +export KEEP_TESTS="" +export DO_NOT_UPLOAD="" +export DO_NOT_TEST="" +export SCP="scp" +export WGET="wget" +export WGET_OPTS="--no-check-certificate --no-verbose" +export CURL="curl" +export CURL_OPTS="-k --remote-name --silent --location-trusted" +export CGAL_URL="https://cgal.geometryfactory.com/CGAL/Members/Releases" +export UPLOAD_RESULT_DESTINATION="cgaltest@cgaltest.geometryfactory.com:incoming" +export LATEST_LOCATION="${CGAL_URL}/LATEST" +export TAR="tar" +export GZIP="gzip" +export GUNZIP="gunzip" +export COMPRESSOR="${GZIP}" +export CONSOLE_OUTPUT="y" +export CGAL_ROOT=`pwd` +export USE_TARGZ="n" +export USE_TARBZ="n" +export CGAL_RELEASE="" +export LOGS_DIR="" +export LOCK_FILE="" +export LIST_TEST_PACKAGES="" +export ACTUAL_LOGFILE="" +export CGAL_DIR="" +USE_LATEST_UNZIPPED="" +WITH_DOCKER="n" + +# ---------------------------------------------------------------------------------------- +# Downloads the file "LATEST" whose contents indicates which release to test +# ---------------------------------------------------------------------------------------- +download_latest() +{ + if [ -r "LATEST" ]; then + rm -rf LATEST + fi + log "${ACTUAL_LOGFILE}" "getting LATEST" + if [ -n "${USE_CURL}" ]; then + ${CURL} ${CURL_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 + else + ${WGET} ${WGET_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 + fi + if [ ! -f "LATEST" ]; then + error "COULD NOT DOWNLOAD LATEST!" + fi +} + +# ---------------------------------------------------------------------------------------- +# Exits the testsuite if the latest release has been already tested. +# This is tested by comparing files LATEST and RELEASE_NR, where +# RELEASE_NR is a copy of the previous LATEST. +# ---------------------------------------------------------------------------------------- +abort_if_latest_already_tested() +{ + if [ -r "RELEASE_NR" ]; then + cmp LATEST RELEASE_NR >> "${ACTUAL_LOGFILE}" + if [ ! ${?} != 0 ]; then + log "${ACTUAL_LOGFILE}" "This release has already been tested." + rm -f "$LOCK_FILE"; + exit 1; + fi + fi +} + + + +# ---------------------------------------------------------------------------------------- +# get CGAL +# ---------------------------------------------------------------------------------------- +get_cgal() +{ + if [ -z "$CGAL_LOCATION" ]; then + for i in `cat LATEST` + do + CGAL_LOCATION="${CGAL_URL}/${i}"; + CGAL_ZIPFILE="${i}"; + done + else + CGAL_ZIPFILE=`echo "$CGAL_LOCATION" | sed 's|.*/||'` + fi + + CGAL_RELEASE_ID=`echo $CGAL_ZIPFILE | sed "s/.tar.gz//"` + if [ ! "${CGAL_RELEASE_ID}" = "${CGAL_ZIPFILE}" ]; then + USE_TARGZ="y" + else + CGAL_RELEASE_ID=`echo $CGAL_ZIPFILE | sed "s/.tar.bz2//"` + if [ ! "${CGAL_RELEASE_ID}" = "${CGAL_ZIPFILE}" ]; then + USE_TARBZ="y" + fi + fi + + log "${ACTUAL_LOGFILE}" "CGAL_ZIPFILE = ${CGAL_ZIPFILE}" + log "${ACTUAL_LOGFILE}" "CGAL_RELEASE_ID = ${CGAL_RELEASE_ID}" + + log "${ACTUAL_LOGFILE}" "getting CGAL" + rm -f "${CGAL_ZIPFILE}" + if [ -n "${USE_CURL}" ]; then + ${CURL} ${CURL_OPTS} "${CGAL_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 + else + ${WGET} ${WGET_OPTS} "${CGAL_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 + fi + if [ ${?} != 0 ]; then + error "Could not get CGAL" + fi + log_done "${ACTUAL_LOGFILE}" +} + + +# ---------------------------------------------------------------------------------------- +# Unzips and untars the downloaded CGAL release +# ---------------------------------------------------------------------------------------- +unzip_cgal() +{ + cd "${CGAL_ROOT}" + + log "${ACTUAL_LOGFILE}" "unzipping CGAL" + if [ "${USE_TARGZ}" = "y" ]; then + DECOMPRESSOR="${GUNZIP}" + log_done "${ACTUAL_LOGFILE}" + fi + + if [ "${USE_TARBZ}" = "y" ]; then + DECOMPRESSOR="bunzip2" + fi + + log "${ACTUAL_LOGFILE}" "untarring CGAL" + ${DECOMPRESSOR} -c "${CGAL_ZIPFILE}" | ${TAR} xf - >> "${ACTUAL_LOGFILE}" 2>&1 + if [ ${?} != 0 ]; then + error "Could not untar CGAL" + fi + + # check, if CGAL_DIR exists + if [ -d "${CGAL_ROOT}/${CGAL_RELEASE_ID}" ]; then + # Reset CGAL-I symlink + log "${ACTUAL_LOGFILE}" "Resetting CGAL-I symlink to ${CGAL_ROOT}/${CGAL_RELEASE_ID}" + rm -f CGAL-I + ln -s "${CGAL_ROOT}/${CGAL_RELEASE_ID}" CGAL-I + # Reset CGAL-3.x-I symlink + CGAL_RELEASE=`echo "${CGAL_RELEASE_ID}" | sed 's/I\([^-]*\)-.*/I\1/'` + log "${ACTUAL_LOGFILE}" "Resetting ${CGAL_RELEASE} symlink to ${CGAL_ROOT}/${CGAL_RELEASE_ID}" + rm -f "${CGAL_RELEASE}" + ln -s "${CGAL_ROOT}/${CGAL_RELEASE_ID}" "${CGAL_RELEASE}" + else + error "directory ${CGAL_ROOT}/${CGAL_RELEASE_ID} does not exist" + fi + + log_done "${ACTUAL_LOGFILE}" +} + + + +# Parse command line arguments +for arg in "$@" +do + case "$arg" in + "-c") + echo "Using latest unzipped release instead of getting a new one from the server" + USE_LATEST_UNZIPPED="y" + ;; + "-l") + echo "Not uploading results to dashboard" + DO_NOT_UPLOAD="y" + ;; + "-n") + echo "No testsuite will be launched. Installation only." + DO_NOT_TEST="y" + ;; + "-s") + echo "Showing progress." + SHOW_PROGRESS="y" + ;; + "-k") + echo "Compiled test/ directory will be kept." + KEEP_TESTS="y" + ;; + "-d") + echo "The testsuite will be launched through docker" + WITH_DOCKER="y" + ;; + *) + CGAL_LOCATION=$arg + esac +done + +# Load settings +if [ -f "$CGAL_ROOT/.autocgalrc" ]; then + . "$CGAL_ROOT/.autocgalrc" +else + echo "CONFIGURATION FILE .autocgalrc NOT FOUND" >&2; + exit 1 +fi + + +CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` +source "${CGAL_DIR}/developer_scripts/log.sh" +LOGS_DIR="${CGAL_ROOT}/AUTOTEST_LOGS" +LOCK_FILE="${CGAL_ROOT}/autotest_cgal_with_cmake.lock" +LIST_TEST_PACKAGES="${CGAL_ROOT}/list_test_packages" + +# Setup logfile +ACTUAL_LOGFILE="${CGAL_ROOT}/`basename ${0}`.log" +rm -f "${ACTUAL_LOGFILE}" + +echo "Running `basename ${0}` "'$Revision$' >> "${ACTUAL_LOGFILE}" + +cd "$CGAL_ROOT" + +# Starts the process + +if [ -z "${USE_LATEST_UNZIPPED}" ]; then + if [ -z "$CGAL_LOCATION" ]; then + download_latest + abort_if_latest_already_tested + fi + get_cgal + unzip_cgal +fi + +if [ "${WITH_DOCKER}" = "y" ]; then + #launch docker container + echo "export SHOW_PROGRESS=$SHOW_PROGRESS"> env.sh + echo "export KEEP_TESTS=$KEEP_TESTS">> env.sh + echo "export DO_NOT_UPLOAD=$DO_NOT_UPLOAD">> env.sh + echo "export DO_NOT_TEST=$DO_NOT_TEST">> env.sh + echo "export SCP=$SCP">> env.sh + echo "export WGET=$WGET">> env.sh + echo "export WGET_OPTS=\"$WGET_OPTS\"">> env.sh + echo "export CURL=$CURL">> env.sh + echo "export CURL_OPTS=\"$CURL_OPTS\"">> env.sh + echo "export CGAL_URL=$CGAL_URL">> env.sh + echo "export UPLOAD_RESULT_DESTINATION=$UPLOAD_RESULT_DESTINATION">> env.sh + echo "export LATEST_LOCATION=$LATEST_LOCATION">> env.sh + echo "export TAR=$TAR">> env.sh + echo "export GZIP=$GZIP">> env.sh + echo "export GUNZIP=$GUNZIP">> env.sh + echo "export COMPRESSOR=$COMPRESSOR">> env.sh + echo "export CONSOLE_OUTPUT=$CONSOLE_OUTPUT">> env.sh + echo "export CGAL_ROOT=/cgal_root">> env.sh + echo "export USE_TARGZ=$USE_TARGZ">> env.sh + echo "export USE_TARBZ=$USE_TARBZ">> env.sh + echo "export CGAL_RELEASE=$CGAL_RELEASE">> env.sh + echo "export CGAL_DIR=/cgal_root/\${CGAL_LAST}">>env.sh + echo "export LIST_TEST_PACKAGES=/cgal_root/list_test_packages">> env.sh + echo "export LOGS_DIR=/cgal_root/AUTOTEST_LOGS">> env.sh + echo "export LOCK_FILE=/cgal_root/autotest_cgal_with_cmake.lock">> env.sh + echo "export ACTUAL_LOGFILE=/cgal_root/\`basename \${0}\`.log">> env.sh + docker build -t debian:cross-compilation ${DOCKER_DIR_PATH} + docker run --rm -t -e CGAL_LAST=CGAL-4.14-Ic-140 -v ~/foutoir/ssh_testsuite/ssh:/tmp_ssh -v ~/3rdPartyLibs/RPi_libs:/deps -v ${CGAL_ROOT}/:/cgal_root debian:cross-compilation +else + bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake +fi diff --git a/Scripts/developer_scripts/log.sh b/Scripts/developer_scripts/log.sh new file mode 100644 index 00000000000..05ebc8eab64 --- /dev/null +++ b/Scripts/developer_scripts/log.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +log() +{ + LOGFILE=${1} + shift + if [ -n "${CONSOLE_OUTPUT}" ]; then + printf "${*} ...\n" + fi + printf "\n-------------------------------------------------------\n" >> "${LOGFILE}" + printf " ${*} ...\n" >> "${LOGFILE}" + printf "\n-------------------------------------------------------\n" >> "${LOGFILE}" +} + +log_done() +{ + if [ -n "${CONSOLE_OUTPUT}" ]; then + printf \ + " done\n-------------------------------------------------------\n" + fi + printf "\n-------------------------------------------------------\n" >> "${1}" + printf " **DONE**\n" >> "${1}" + printf "\n-------------------------------------------------------\n" >> "${1}" +} + diff --git a/Scripts/developer_scripts/run_testsuite_with_cmake b/Scripts/developer_scripts/run_testsuite_with_cmake index 67bb9c339e2..2be3b2884d6 100644 --- a/Scripts/developer_scripts/run_testsuite_with_cmake +++ b/Scripts/developer_scripts/run_testsuite_with_cmake @@ -5,6 +5,15 @@ #### LAUNCH CTEST #### ########################## +source "${CGAL_DIR}/developer_scripts/log.sh" +# Load settings +echo "CGAL_ROOT is $CGAL_ROOT" +if [ -f "$CGAL_ROOT/.autocgalrc" ]; then + . "$CGAL_ROOT/.autocgalrc" +else + echo "CONFIGURATION FILE .autocgalrc NOT FOUND" >&2; + exit 1 +fi # ---------------------------------------------------------------------------------------- # function to print the value of variable $1 @@ -113,8 +122,7 @@ build_platforms_list() setup_dirs() { # dir for the actual release - CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` - + CGAL_TEST_DIR=${CGAL_DIR}/test if [ ! -d "${CGAL_DIR}/cmake" ]; then @@ -162,8 +170,6 @@ setup_dirs() collect_all_reference_platforms fi - #todo - PLATFORMS="raspberry" for PLATFORM in ${PLATFORMS}; do CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} @@ -239,16 +245,15 @@ run_test_on_host_and_platform() NUMBER_OF_PROCESSORS="`value_of PROCESSORS_${HOST}`" CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} - if [ -d "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}" ] ; then - if [ -f "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/init.cmake" ]; then - INIT_FILE="${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/init.cmake" - fi - fi cd "${CGAL_BINARY_DIR}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" - #todo : check if that still works - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=OFF -DWITH_tests=OFF -DWITH_CGAL_Qt5=OFF -DCGAL_HEADER_ONLY=ON $CGAL_DIR > installation.log - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' VERBOSE=1 $CGAL_DIR + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=OFF -DWITH_tests=OFF -DWITH_CGAL_Qt5=OFF -DCGAL_HEADER_ONLY=ON $CGAL_DIR > installation.log 2>&1 + rm CMakeCache.txt + if [ -z "${SHOW_PROGRESS}" ]; then + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' VERBOSE=1 $CGAL_DIR >/dev/null 2>&1 + else + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' VERBOSE=1 $CGAL_DIR + fi LIST_TEST_FILE="${CGAL_ROOT}/list_test_packages" LIST_TEST_PACKAGES=$(source ${LIST_TEST_FILE}) TO_TEST="" @@ -261,8 +266,7 @@ run_test_on_host_and_platform() TO_TEST="${TO_TEST}|$pkg" fi done - NUMBER_OF_PROCESSORS="`value_of PROCESSORS_localhost`" - + CTEST_OPTS="-T Start -T Test -j${NUMBER_OF_PROCESSORS} ${DO_NOT_TEST:+-E execution___of__} --timeout 1200" if [ -z "${SHOW_PROGRESS}" ]; then ctest ${CTEST_OPTS} ${TO_TEST:+-L ${TO_TEST} } ${KEEP_TESTS:+-FC .}> tmp.txt @@ -273,6 +277,7 @@ run_test_on_host_and_platform() ## GET RESULTS ## ##################### TAG_DIR=$(awk '/^Create new tag: /{print $4F}' tmp.txt) + rm tmp.txt cd Testing/${TAG_DIR} #python $CGAL_DIR/test/parse-ctest-dashboard-xml.py $CGAL_TESTER $PLATFORM RESULT_FILE=./"results_${CGAL_TESTER}_${PLATFORM}.txt" @@ -287,13 +292,14 @@ run_test_on_host_and_platform() #echo "Host-specific installation log file: ../installation.log" >> "$RESULT_FILE" grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log" >> $RESULT_FILE echo "------------" >> "$RESULT_FILE" - python3 /home/gimeno/CGAL/Testsuite/test/parse-ctest-dashboard-xml.py $CGAL_TESTER $PLATFORM + python3 ${CGAL_DIR}/test/parse-ctest-dashboard-xml.py $CGAL_TESTER $PLATFORM for file in $(ls|grep _Tests); do mv $file "$(echo "$file" | sed 's/_Tests//g')" done OUTPUT_FILE=results_${CGAL_TESTER}_${PLATFORM}.tar TEST_REPORT="TestReport_${CGAL_TESTER}_${PLATFORM}" + rm -f $OUTPUT_FILE $OUTPUT_FILE.gz tar cf $OUTPUT_FILE results_${CGAL_TESTER}_${PLATFORM}.txt */"$TEST_REPORT" echo @@ -306,10 +312,7 @@ run_test_on_host_and_platform() run_test_on_host() { HOST=${1} - - #todo PLATFORMS=`value_of COMPILERS_${HOST}` - PLATFORMS="raspberry" if [ "${PLATFORMS}" = "all" ]; then collect_all_current_platforms "${CGAL_BINARY_DIR_BASE}" fi @@ -344,7 +347,7 @@ log "${ACTUAL_LOGFILE}" "running the testsuites" if [ -n "${CONSOLE_OUTPUT}" ]; then printf "\n-------------------------------------------------------\n" fi - for HOST in ${BUILD_HOSTS}; do - run_test_on_host ${HOST} & + run_test_on_host ${HOST} done + From dbb25126029ccc07417530937ed0787147cbc0cf Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 6 Mar 2019 14:57:14 +0100 Subject: [PATCH 16/20] un-hard code the variables for docker and pull instead of building. --- Scripts/developer_scripts/global_run_testsuite.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Scripts/developer_scripts/global_run_testsuite.sh b/Scripts/developer_scripts/global_run_testsuite.sh index f945a0a107a..85e6e595fb9 100644 --- a/Scripts/developer_scripts/global_run_testsuite.sh +++ b/Scripts/developer_scripts/global_run_testsuite.sh @@ -254,8 +254,8 @@ if [ "${WITH_DOCKER}" = "y" ]; then echo "export LOGS_DIR=/cgal_root/AUTOTEST_LOGS">> env.sh echo "export LOCK_FILE=/cgal_root/autotest_cgal_with_cmake.lock">> env.sh echo "export ACTUAL_LOGFILE=/cgal_root/\`basename \${0}\`.log">> env.sh - docker build -t debian:cross-compilation ${DOCKER_DIR_PATH} - docker run --rm -t -e CGAL_LAST=CGAL-4.14-Ic-140 -v ~/foutoir/ssh_testsuite/ssh:/tmp_ssh -v ~/3rdPartyLibs/RPi_libs:/deps -v ${CGAL_ROOT}/:/cgal_root debian:cross-compilation + docker pull cgal/testsuite-docker:debian-for-arm + docker run --rm -t -e CGAL_LAST=${CGAL_RELEASE_ID} -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}/:/cgal_root cgal/testsuite-docker:debian-for-arm else bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake fi From 57a532dbc7899652922d97b81ed1866bcdd3656b Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 11 Mar 2019 12:07:04 +0100 Subject: [PATCH 17/20] update script --- Scripts/developer_scripts/global_run_testsuite.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Scripts/developer_scripts/global_run_testsuite.sh b/Scripts/developer_scripts/global_run_testsuite.sh index 85e6e595fb9..0eec3a6d7ca 100644 --- a/Scripts/developer_scripts/global_run_testsuite.sh +++ b/Scripts/developer_scripts/global_run_testsuite.sh @@ -90,6 +90,7 @@ get_cgal() fi CGAL_RELEASE_ID=`echo $CGAL_ZIPFILE | sed "s/.tar.gz//"` + echo ${CGAL_RELEASE_ID} > last_release_id if [ ! "${CGAL_RELEASE_ID}" = "${CGAL_ZIPFILE}" ]; then USE_TARGZ="y" else @@ -225,7 +226,7 @@ if [ -z "${USE_LATEST_UNZIPPED}" ]; then get_cgal unzip_cgal fi - +CGAL_RELEASE_ID=$(cat last_release_id) if [ "${WITH_DOCKER}" = "y" ]; then #launch docker container echo "export SHOW_PROGRESS=$SHOW_PROGRESS"> env.sh @@ -254,8 +255,11 @@ if [ "${WITH_DOCKER}" = "y" ]; then echo "export LOGS_DIR=/cgal_root/AUTOTEST_LOGS">> env.sh echo "export LOCK_FILE=/cgal_root/autotest_cgal_with_cmake.lock">> env.sh echo "export ACTUAL_LOGFILE=/cgal_root/\`basename \${0}\`.log">> env.sh - docker pull cgal/testsuite-docker:debian-for-arm - docker run --rm -t -e CGAL_LAST=${CGAL_RELEASE_ID} -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}/:/cgal_root cgal/testsuite-docker:debian-for-arm + + echo "CGAL_DIR is ${CGAL_RELEASE_ID}" + + docker pull cgal/testsuite-docker:debian-stable-cross-compilation-for-arm + docker run --rm -t -e CGAL_LAST="${CGAL_RELEASE_ID}" -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}:/cgal_root cgal/testsuite-docker:debian-stable-cross-compilation-for-arm else bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake fi From 7c0d23b18f9430b9c42f3e665931b6c7a88f6eff Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 12 Mar 2019 10:13:07 +0100 Subject: [PATCH 18/20] Fix CGAL_DIR and change names in CGAL_add_tests --- .../cmake/modules/CGAL_add_test.cmake | 42 +++++++++---------- .../developer_scripts/global_run_testsuite.sh | 2 + .../run_testsuite_with_cmake | 5 ++- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index a86003363f9..e7d6ee42564 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -40,11 +40,11 @@ if(CGAL_CTEST_DISPLAY_MEM_AND_TIME) endif() if(ANDROID) - set(ANDROID_DIR_PREFIX /data/local/tmp/) + set(CGAL_REMOTE_TEST_DIR_PREFIX /data/local/tmp/ CACHE PATH "Path to the directory where the tests will be executed in a remote testsuite.") find_program(adb_executable adb) endif() -if(SSH) - set(SSH_DIR_PREFIX /home/pi/CGAL/) +if(CGAL_RUN_TESTS_THROUGH_SSH) + set(CGAL_REMOTE_TEST_DIR_PREFIX /home/pi/CGAL/ CACHE PATH "Path to the directory where the tests will be executed in a remote testsuite.")) find_program(ssh_executable ssh) find_program(scp_executable scp) endif() @@ -121,24 +121,24 @@ function(cgal_setup_test_properties test_name) COMMAND ${adb_executable} push ${CMAKE_CURRENT_SOURCE_DIR} - ${ANDROID_DIR_PREFIX}${PROJECT_NAME} + ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} ) add_test(NAME ${PROJECT_NAME}_copy_GMP_MPFR COMMAND ${adb_executable} push ${GMP_LIBRARIES} ${MPFR_LIBRARIES} - ${ANDROID_DIR_PREFIX}${PROJECT_NAME} + ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} ) set_property(TEST ${PROJECT_NAME}_copy_GMP_MPFR APPEND PROPERTY DEPENDS ${PROJECT_NAME}_SetupFixture) set_property(TEST ${PROJECT_NAME}_copy_GMP_MPFR PROPERTY FIXTURES_SETUP ${PROJECT_NAME}) - elseif(SSH) + elseif(CGAL_RUN_TESTS_THROUGH_SSH) add_test(NAME ${PROJECT_NAME}_SetupFixture COMMAND ${scp_executable} -r ${CMAKE_CURRENT_SOURCE_DIR} - ${SSH_HOST}:${SSH_DIR_PREFIX}${PROJECT_NAME} + ${SSH_HOST}:${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} ) else() add_test(NAME ${PROJECT_NAME}_SetupFixture @@ -155,13 +155,13 @@ function(cgal_setup_test_properties test_name) add_test(NAME ${PROJECT_NAME}_CleanupFixture COMMAND ${adb_executable} shell rm -rf - ${ANDROID_DIR_PREFIX}${PROJECT_NAME} + ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} ) - elseif(SSH) + elseif(CGAL_RUN_TESTS_THROUGH_SSH) add_test(NAME ${PROJECT_NAME}_CleanupFixture COMMAND ${ssh_executable} ${SSH_HOST} rm -rf - ${SSH_DIR_PREFIX}${PROJECT_NAME} + ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} ) else() add_test(NAME ${PROJECT_NAME}_CleanupFixture @@ -177,7 +177,7 @@ function(cgal_setup_test_properties test_name) ${PROJECT_NAME}_CleanupFixture ${PROJECT_NAME}_SetupFixture APPEND PROPERTY LABELS "${PROJECT_NAME}") endif() - if(NOT ANDROID AND NOT SSH) + if(NOT ANDROID AND NOT CGAL_RUN_TESTS_THROUGH_SSH) set_property(TEST "${test_name}" PROPERTY WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/__exec_test_dir) @@ -190,13 +190,13 @@ function(cgal_setup_test_properties test_name) APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}") set_property(TEST "compilation_of__${exe_name}" PROPERTY FIXTURES_SETUP "${exe_name}") - if((ANDROID OR 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) add_test(NAME "push_of__${exe_name}" - COMMAND ${adb_executable} push $ ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) - elseif(SSH) + COMMAND ${adb_executable} push $ ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME}/${exe_name}) + elseif(CGAL_RUN_TESTS_THROUGH_SSH) add_test(NAME "push_of__${exe_name}" - COMMAND ${scp_executable} $ ${SSH_HOST}:${SSH_DIR_PREFIX}${PROJECT_NAME}/) + COMMAND ${scp_executable} $ ${SSH_HOST}:${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME}/) endif() set_property(TEST "push_of__${exe_name}" APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") @@ -232,7 +232,7 @@ function(cgal_add_test exe_name) # message("Add test ${test_name}") set(cin_file "${CMAKE_CURRENT_SOURCE_DIR}/${exe_name}.cin") if(NOT ARGS AND EXISTS ${cin_file}) - if(ANDROID OR SSH) + if(ANDROID OR CGAL_RUN_TESTS_THROUGH_SSH) set(cmd ${exe_name}) else() set(cmd $) @@ -241,10 +241,10 @@ function(cgal_add_test exe_name) COMMAND ${TIME_COMMAND} ${CMAKE_COMMAND} -DCMD:STRING=${cmd} -DCIN:STRING=${cin_file} - -DANDROID_DIR_PREFIX=${ANDROID_DIR_PREFIX} + -DCGAL_REMOTE_TEST_DIR_PREFIX=${CGAL_REMOTE_TEST_DIR_PREFIX} -DSSH=${SSH} -DSSH_HOST=${SSH_HOST} - -DSSH_DIR_PREFIX=${SSH_DIR_PREFIX} + -DCGAL_REMOTE_TEST_DIR_PREFIX=${CGAL_REMOTE_TEST_DIR_PREFIX} -DPROJECT_NAME=${PROJECT_NAME} -P "${CGAL_MODULES_DIR}/run_test_with_cin.cmake") set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -277,10 +277,10 @@ function(cgal_add_test exe_name) endif() # message(STATUS "add test: ${exe_name} ${ARGS}") if(ANDROID) - add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${adb_executable} shell cd ${ANDROID_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${ANDROID_DIR_PREFIX}${PROJECT_NAME} ${ANDROID_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) - elseif(SSH) + add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} ${adb_executable} shell cd ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} && LD_LIBRARY_PATH=${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${ARGS}) + elseif(CGAL_RUN_TESTS_THROUGH_SSH) STRING(REPLACE ";" " " arg_str "${ARGS}") - add_test(NAME ${test_name} COMMAND bash -c "${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} \"cd ${SSH_DIR_PREFIX}${PROJECT_NAME} && ${SSH_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${arg_str} 3< <(cat; kill -INT 0)\" <&1") + add_test(NAME ${test_name} COMMAND bash -c "${TIME_COMMAND} ${ssh_executable} ${SSH_HOST} \"cd ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME} && ${CGAL_REMOTE_TEST_DIR_PREFIX}${PROJECT_NAME}/${exe_name} ${arg_str} 3< <(cat; kill -INT 0)\" <&1") else() add_test(NAME ${test_name} COMMAND ${TIME_COMMAND} $ ${ARGS}) endif() diff --git a/Scripts/developer_scripts/global_run_testsuite.sh b/Scripts/developer_scripts/global_run_testsuite.sh index 0eec3a6d7ca..d6ca2e3be76 100644 --- a/Scripts/developer_scripts/global_run_testsuite.sh +++ b/Scripts/developer_scripts/global_run_testsuite.sh @@ -226,6 +226,8 @@ if [ -z "${USE_LATEST_UNZIPPED}" ]; then get_cgal unzip_cgal fi +#reset CGAL-DIR with the updated CGAL-I +CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` CGAL_RELEASE_ID=$(cat last_release_id) if [ "${WITH_DOCKER}" = "y" ]; then #launch docker container diff --git a/Scripts/developer_scripts/run_testsuite_with_cmake b/Scripts/developer_scripts/run_testsuite_with_cmake index 2be3b2884d6..4e27d221a18 100644 --- a/Scripts/developer_scripts/run_testsuite_with_cmake +++ b/Scripts/developer_scripts/run_testsuite_with_cmake @@ -7,7 +7,6 @@ source "${CGAL_DIR}/developer_scripts/log.sh" # Load settings -echo "CGAL_ROOT is $CGAL_ROOT" if [ -f "$CGAL_ROOT/.autocgalrc" ]; then . "$CGAL_ROOT/.autocgalrc" else @@ -255,7 +254,9 @@ run_test_on_host_and_platform() cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' VERBOSE=1 $CGAL_DIR fi LIST_TEST_FILE="${CGAL_ROOT}/list_test_packages" - LIST_TEST_PACKAGES=$(source ${LIST_TEST_FILE}) + if [ -f ${LIST_TEST_FILE} ]; then + LIST_TEST_PACKAGES=$(source ${LIST_TEST_FILE}) + fi TO_TEST="" INIT="" for pkg in $LIST_TEST_PACKAGES; do From 64cfc19d681e1c546c840ec50cb930ef08235fa1 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 12 Mar 2019 14:51:55 +0100 Subject: [PATCH 19/20] Remove -d option. Any HOST declared as not localhost will be considered as a remote host and launch the cross compilation. --- .../cmake/modules/CGAL_add_test.cmake | 2 +- ..._testsuite.sh => autotest_cgal_with_ctest} | 83 +++++++++---------- .../run_testsuite_with_cmake | 32 +++---- 3 files changed, 55 insertions(+), 62 deletions(-) rename Scripts/developer_scripts/{global_run_testsuite.sh => autotest_cgal_with_ctest} (75%) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index e7d6ee42564..561dc6b0c64 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -44,7 +44,7 @@ if(ANDROID) find_program(adb_executable adb) endif() if(CGAL_RUN_TESTS_THROUGH_SSH) - set(CGAL_REMOTE_TEST_DIR_PREFIX /home/pi/CGAL/ CACHE PATH "Path to the directory where the tests will be executed in a remote testsuite.")) + set(CGAL_REMOTE_TEST_DIR_PREFIX /home/pi/CGAL/ CACHE PATH "Path to the directory where the tests will be executed in a remote testsuite.") find_program(ssh_executable ssh) find_program(scp_executable scp) endif() diff --git a/Scripts/developer_scripts/global_run_testsuite.sh b/Scripts/developer_scripts/autotest_cgal_with_ctest similarity index 75% rename from Scripts/developer_scripts/global_run_testsuite.sh rename to Scripts/developer_scripts/autotest_cgal_with_ctest index d6ca2e3be76..f4b6604cd86 100644 --- a/Scripts/developer_scripts/global_run_testsuite.sh +++ b/Scripts/developer_scripts/autotest_cgal_with_ctest @@ -20,9 +20,8 @@ export CGAL_URL="https://cgal.geometryfactory.com/CGAL/Members/Releases" export UPLOAD_RESULT_DESTINATION="cgaltest@cgaltest.geometryfactory.com:incoming" export LATEST_LOCATION="${CGAL_URL}/LATEST" export TAR="tar" -export GZIP="gzip" export GUNZIP="gunzip" -export COMPRESSOR="${GZIP}" +export COMPRESSOR="gzip" export CONSOLE_OUTPUT="y" export CGAL_ROOT=`pwd` export USE_TARGZ="n" @@ -34,7 +33,6 @@ export LIST_TEST_PACKAGES="" export ACTUAL_LOGFILE="" export CGAL_DIR="" USE_LATEST_UNZIPPED="" -WITH_DOCKER="n" # ---------------------------------------------------------------------------------------- # Downloads the file "LATEST" whose contents indicates which release to test @@ -135,6 +133,7 @@ unzip_cgal() fi log "${ACTUAL_LOGFILE}" "untarring CGAL" + ${DECOMPRESSOR} -c "${CGAL_ZIPFILE}" > /dev/null ${DECOMPRESSOR} -c "${CGAL_ZIPFILE}" | ${TAR} xf - >> "${ACTUAL_LOGFILE}" 2>&1 if [ ${?} != 0 ]; then error "Could not untar CGAL" @@ -184,10 +183,6 @@ do echo "Compiled test/ directory will be kept." KEEP_TESTS="y" ;; - "-d") - echo "The testsuite will be launched through docker" - WITH_DOCKER="y" - ;; *) CGAL_LOCATION=$arg esac @@ -229,39 +224,43 @@ fi #reset CGAL-DIR with the updated CGAL-I CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` CGAL_RELEASE_ID=$(cat last_release_id) -if [ "${WITH_DOCKER}" = "y" ]; then - #launch docker container - echo "export SHOW_PROGRESS=$SHOW_PROGRESS"> env.sh - echo "export KEEP_TESTS=$KEEP_TESTS">> env.sh - echo "export DO_NOT_UPLOAD=$DO_NOT_UPLOAD">> env.sh - echo "export DO_NOT_TEST=$DO_NOT_TEST">> env.sh - echo "export SCP=$SCP">> env.sh - echo "export WGET=$WGET">> env.sh - echo "export WGET_OPTS=\"$WGET_OPTS\"">> env.sh - echo "export CURL=$CURL">> env.sh - echo "export CURL_OPTS=\"$CURL_OPTS\"">> env.sh - echo "export CGAL_URL=$CGAL_URL">> env.sh - echo "export UPLOAD_RESULT_DESTINATION=$UPLOAD_RESULT_DESTINATION">> env.sh - echo "export LATEST_LOCATION=$LATEST_LOCATION">> env.sh - echo "export TAR=$TAR">> env.sh - echo "export GZIP=$GZIP">> env.sh - echo "export GUNZIP=$GUNZIP">> env.sh - echo "export COMPRESSOR=$COMPRESSOR">> env.sh - echo "export CONSOLE_OUTPUT=$CONSOLE_OUTPUT">> env.sh - echo "export CGAL_ROOT=/cgal_root">> env.sh - echo "export USE_TARGZ=$USE_TARGZ">> env.sh - echo "export USE_TARBZ=$USE_TARBZ">> env.sh - echo "export CGAL_RELEASE=$CGAL_RELEASE">> env.sh - echo "export CGAL_DIR=/cgal_root/\${CGAL_LAST}">>env.sh - echo "export LIST_TEST_PACKAGES=/cgal_root/list_test_packages">> env.sh - echo "export LOGS_DIR=/cgal_root/AUTOTEST_LOGS">> env.sh - echo "export LOCK_FILE=/cgal_root/autotest_cgal_with_cmake.lock">> env.sh - echo "export ACTUAL_LOGFILE=/cgal_root/\`basename \${0}\`.log">> env.sh - echo "CGAL_DIR is ${CGAL_RELEASE_ID}" - - docker pull cgal/testsuite-docker:debian-stable-cross-compilation-for-arm - docker run --rm -t -e CGAL_LAST="${CGAL_RELEASE_ID}" -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}:/cgal_root cgal/testsuite-docker:debian-stable-cross-compilation-for-arm -else - bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake -fi +PLATFORMS=`value_of COMPILERS_${HOST}` +#setup dir +setup_dirs +for HOST in ${BUILD_HOSTS}; do + if [ "$HOST" != "localhost" ]; then + #launch docker container + echo "export SHOW_PROGRESS=$SHOW_PROGRESS"> env.sh + echo "export KEEP_TESTS=$KEEP_TESTS">> env.sh + echo "export DO_NOT_UPLOAD=$DO_NOT_UPLOAD">> env.sh + echo "export DO_NOT_TEST=$DO_NOT_TEST">> env.sh + echo "export SCP=$SCP">> env.sh + echo "export WGET=$WGET">> env.sh + echo "export WGET_OPTS=\"$WGET_OPTS\"">> env.sh + echo "export CURL=$CURL">> env.sh + echo "export CURL_OPTS=\"$CURL_OPTS\"">> env.sh + echo "export CGAL_URL=$CGAL_URL">> env.sh + echo "export UPLOAD_RESULT_DESTINATION=$UPLOAD_RESULT_DESTINATION">> env.sh + echo "export LATEST_LOCATION=$LATEST_LOCATION">> env.sh + echo "export TAR=$TAR">> env.sh + echo "export GUNZIP=$GUNZIP">> env.sh + echo "export COMPRESSOR=$COMPRESSOR">> env.sh + echo "export CONSOLE_OUTPUT=$CONSOLE_OUTPUT">> env.sh + echo "export CGAL_ROOT=/cgal_root">> env.sh + echo "export USE_TARGZ=$USE_TARGZ">> env.sh + echo "export USE_TARBZ=$USE_TARBZ">> env.sh + echo "export CGAL_RELEASE=$CGAL_RELEASE">> env.sh + echo "export CGAL_DIR=/cgal_root/\${CGAL_LAST}">>env.sh + echo "export LIST_TEST_PACKAGES=/cgal_root/list_test_packages">> env.sh + echo "export LOGS_DIR=/cgal_root/AUTOTEST_LOGS">> env.sh + echo "export LOCK_FILE=/cgal_root/autotest_cgal_with_cmake.lock">> env.sh + echo "export ACTUAL_LOGFILE=/cgal_root/\`basename \${0}\`.log">> env.sh + echo "export REFERENCE_PLATFORMS_DIR=$REFERENCE_PLATFORMS_DIR">>env.sh + + docker pull cgal/testsuite-docker:debian-stable-cross-compilation-for-arm + docker run --rm -t -e CGAL_LAST="${CGAL_RELEASE_ID}" -e HOST="${HOST}" -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}:/cgal_root cgal/testsuite-docker:debian-stable-cross-compilation-for-arm + else + HOST=$HOST bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake + fi +done diff --git a/Scripts/developer_scripts/run_testsuite_with_cmake b/Scripts/developer_scripts/run_testsuite_with_cmake index 4e27d221a18..eefea70e264 100644 --- a/Scripts/developer_scripts/run_testsuite_with_cmake +++ b/Scripts/developer_scripts/run_testsuite_with_cmake @@ -157,13 +157,8 @@ setup_dirs() # directories existing in the reference release are added to $PLATFORMS # PLATFORMS="" - - for HOST in ${BUILD_HOSTS}; do - - build_platforms_list "`value_of BUILD_ON_${HOST}`" - build_platforms_list "`value_of COMPILERS_${HOST}`" - - done + build_platforms_list "`value_of BUILD_ON_${HOST}`" + build_platforms_list "`value_of COMPILERS_${HOST}`" if [ -n "${USE_REFERENCE_PLATFORMS}" ]; then collect_all_reference_platforms @@ -198,8 +193,7 @@ put_on_web() publish_results() { - HOST=${1} - PLATFORM=${2} + PLATFORM=${1} # # collect results and put them on the web # @@ -237,15 +231,19 @@ publish_results() fi } -run_test_on_host_and_platform() +run_test_on_platform() { - HOST=${1} - PLATFORM=${2} + PLATFORM=${1} NUMBER_OF_PROCESSORS="`value_of PROCESSORS_${HOST}`" CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} cd "${CGAL_BINARY_DIR}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" + INIT_FILE="${CGAL_ROOT}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}.cmake" + if [ ! -f "${INIT_FILE}" ]; then + echo "error NEED A INIT FILE !" + fi + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=OFF -DWITH_tests=OFF -DWITH_CGAL_Qt5=OFF -DCGAL_HEADER_ONLY=ON $CGAL_DIR > installation.log 2>&1 rm CMakeCache.txt if [ -z "${SHOW_PROGRESS}" ]; then @@ -312,15 +310,14 @@ run_test_on_host_and_platform() # ---------------------------------------------------------------------------------------- run_test_on_host() { - HOST=${1} PLATFORMS=`value_of COMPILERS_${HOST}` if [ "${PLATFORMS}" = "all" ]; then collect_all_current_platforms "${CGAL_BINARY_DIR_BASE}" fi for PLATFORM in ${PLATFORMS}; do - run_test_on_host_and_platform "${HOST}" "${PLATFORM}" - publish_results "${HOST}" "${PLATFORM}" + run_test_on_platform "${PLATFORM}" + publish_results "${PLATFORM}" done } @@ -348,7 +345,4 @@ log "${ACTUAL_LOGFILE}" "running the testsuites" if [ -n "${CONSOLE_OUTPUT}" ]; then printf "\n-------------------------------------------------------\n" fi -for HOST in ${BUILD_HOSTS}; do - run_test_on_host ${HOST} -done - +run_test_on_host From be07aa12675ec789d5ea1c45dd978e4ac28f256b Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 12 Mar 2019 15:07:49 +0100 Subject: [PATCH 20/20] Write CGAL_NR at the end of the testsuite --- Scripts/developer_scripts/autotest_cgal_with_ctest | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Scripts/developer_scripts/autotest_cgal_with_ctest b/Scripts/developer_scripts/autotest_cgal_with_ctest index f4b6604cd86..81163bac119 100644 --- a/Scripts/developer_scripts/autotest_cgal_with_ctest +++ b/Scripts/developer_scripts/autotest_cgal_with_ctest @@ -264,3 +264,8 @@ for HOST in ${BUILD_HOSTS}; do HOST=$HOST bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake fi done + +cd "${CGAL_ROOT}" +if [ -e "LATEST" ]; then + mv LATEST RELEASE_NR +fi