diff --git a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake index 776e34aac53..ddfd3299009 100644 --- a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake @@ -99,7 +99,7 @@ function(CGAL_setup_CGAL_dependencies target) if (CGAL_HEADER_ONLY) target_compile_definitions(${target} ${keyword} CGAL_HEADER_ONLY=1) endif() - if (RUNNING_CGAL_AUTO_TEST) + if (RUNNING_CGAL_AUTO_TEST OR CGAL_TEST_SUITE) target_compile_definitions(${target} ${keyword} CGAL_TEST_SUITE=1) endif() diff --git a/Scripts/developer_scripts/autotest_cgal_with_ctest b/Scripts/developer_scripts/autotest_cgal_with_ctest index 4d5cb79ab1d..c957fb7c959 100644 --- a/Scripts/developer_scripts/autotest_cgal_with_ctest +++ b/Scripts/developer_scripts/autotest_cgal_with_ctest @@ -29,7 +29,6 @@ export USE_TARBZ="n" export CGAL_RELEASE="" export LOGS_DIR="" export LOCK_FILE="" -export LIST_TEST_PACKAGES="" export ACTUAL_LOGFILE="" export CGAL_DIR="" export INSTALLATION_DIR="" @@ -90,7 +89,7 @@ get_cgal() fi CGAL_RELEASE_ID=`echo $CGAL_ZIPFILE | sed "s/.tar.gz//"` - echo ${CGAL_RELEASE_ID} > last_release_id + echo ${CGAL_RELEASE_ID} |tee last_release_id if [ ! "${CGAL_RELEASE_ID}" = "${CGAL_ZIPFILE}" ]; then USE_TARGZ="y" else @@ -186,8 +185,11 @@ do ;; "-g") echo "Run testsuite from GIT branch" - INSTALLATION_DIR="Installation/" - TESTSUITE_DIR="Testsuite/" + export INSTALLATION_DIR="Installation/" + export TESTSUITE_DIR="Testsuite/" + export SCRIPTS_DIR="Scripts/" + UPLOAD_RESULT_DESTINATION="mgimeno@cgal.geometryfactory.com:incoming" + ;; *) CGAL_LOCATION=$arg esac @@ -202,11 +204,15 @@ else fi -CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` -source "${CGAL_DIR}/developer_scripts/log.sh" +if [ -n "${SCRIPTS_DIR}" ]; then + CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-git"` +else + CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` +fi + +source "${CGAL_DIR}/${SCRIPTS_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" @@ -218,7 +224,7 @@ cd "$CGAL_ROOT" # Starts the process -if [ -z "${USE_LATEST_UNZIPPED}" ]; then +if [ -z "${USE_LATEST_UNZIPPED}" -a -z "${SCRIPTS_DIR}" ]; then if [ -z "$CGAL_LOCATION" ]; then download_latest abort_if_latest_already_tested @@ -227,9 +233,13 @@ if [ -z "${USE_LATEST_UNZIPPED}" ]; then 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 [ -n "${SCRIPTS_DIR}" ]; then + CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-git"` +else + CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` +fi +CGAL_RELEASE_ID=$(cat last_release_id) for HOST in ${BUILD_HOSTS}; do if [ "$HOST" != "localhost" ]; then #launch docker container @@ -253,29 +263,31 @@ for HOST in ${BUILD_HOSTS}; do 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 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 echo "export INSTALLATION_DIR=$INSTALLATION_DIR">>env.sh echo "export TESTSUITE_DIR=$TESTSUITE_DIR">>env.sh + echo "export SCRIPTS_DIR=$SCRIPTS_DIR">>env.sh docker pull cgal/testsuite-docker:debian-stable-cross-compilation-for-arm - if [ -z "${CGAL_RELEASE_ID}" ]; then #if not frmom branch + if [ -z "${SCRIPTS_DIR}" ]; then #if not from branch echo "export CGAL_DIR=/cgal_root/\${CGAL_LAST}">>env.sh 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 #read number from file and increase - if [ ! -r last_dev_id \; then - echo "0" > last_dev_id - fi - DEV_ID=$(cat last_dev_id) - echo "export CGAL_DIR=/cgal_root/CGAL-0.${DEV_ID}-dev">>env.sh - docker run --rm -t -e HOST="${HOST}" -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}:/cgal_root -v${CGAL_DIR}:/cgal_root/CGAL-0.${DEV_ID}-dev cgal/testsuite-docker:debian-stable-cross-compilation-for-arm + #if [ ! -r last_dev_id ]; then + # echo "0" > last_dev_id + #fi + #DEV_ID=$(cat last_dev_id) + #echo "$((${DEV_ID}+1))" > last_dev_id + #echo "export CGAL_DIR=/cgal_root/CGAL-0.${DEV_ID}-dev">>env.sh + echo "export CGAL_DIR=/cgal_root/CGAL-git">>env.sh + docker run --rm -t -e HOST="${HOST}" -v ${CGAL_ROOT}/ssh:/tmp_ssh -v ${DEPS_DIR}:/deps -v ${CGAL_ROOT}:/cgal_root -v${CGAL_DIR}:/cgal_root/CGAL-git cgal/testsuite-docker:debian-stable-cross-compilation-for-arm fi else - HOST=$HOST bash ${CGAL_DIR}/developer_scripts/run_testsuite_with_cmake + HOST=$HOST bash ${CGAL_DIR}/${SCRIPTS_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 e8528e385e1..b1f1f304198 100644 --- a/Scripts/developer_scripts/run_testsuite_with_cmake +++ b/Scripts/developer_scripts/run_testsuite_with_cmake @@ -5,7 +5,7 @@ #### LAUNCH CTEST #### ########################## -source "${CGAL_DIR}/developer_scripts/log.sh" +source "${CGAL_DIR}/${SCRIPTS_DIR}developer_scripts/log.sh" # Load settings if [ -f "$CGAL_ROOT/.autocgalrc" ]; then . "$CGAL_ROOT/.autocgalrc" @@ -121,7 +121,9 @@ build_platforms_list() setup_dirs() { # dir for the actual release - + if [ ! -d ${CGAL_DIR}/test ]; then + mkdir ${CGAL_DIR}/test + fi CGAL_TEST_DIR=${CGAL_DIR}/test if [ ! -d "${CGAL_DIR}/cmake" ]; then @@ -135,8 +137,13 @@ setup_dirs() fi CGAL_RELEASE_DIR="${CGAL_DIR}" - - CGAL_RELEASE_ID=`basename "${CGAL_RELEASE_DIR}"` + if [ -z "$SCRIPTS_DIR" ]; then + CGAL_RELEASE_ID=`basename "${CGAL_RELEASE_DIR}"` + else + CGAL_GIT_VERSION=$(sed -n '/CGAL_VERSION /s/#define CGAL_VERSION //p'<"$CGAL_DIR/${INSTALLATION_DIR}include/CGAL/version.h" | sed -n 's/-\w*//p') + CGAL_GIT_VERSION="${CGAL_GIT_VERSION}-Ic-20190314" + CGAL_RELEASE_ID="CGAL-${CGAL_GIT_VERSION}" + fi #todo : too complicated for nothing. Take a simpler outsource build dir CGAL_BINARY_DIR_BASE=${CGAL_RELEASE_DIR}/cmake/platforms @@ -211,8 +218,10 @@ publish_results() ${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'` + COMPILER=`printf "%s" "$1" | 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}" @@ -243,13 +252,16 @@ run_test_on_platform() 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 + 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 [ -n "${SCRIPTS_DIR}" ]; then + CMAKE_OPTS="${CMAKE_OPTS} -DWITH_examples=ON -DWITH_demos=ON -DCGAL_TEST_SUITE=ON" + fi if [ -z "${SHOW_PROGRESS}" ]; then - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DRUNNING_CGAL_AUTO_TEST=TRUE VERBOSE=1 $CGAL_DIR >/dev/null 2>&1 + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 else - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DRUNNING_CGAL_AUTO_TEST=TRUE VERBOSE=1 $CGAL_DIR + CMAKE_EXEC_CMD=$(echo "cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' ${CMAKE_OPTS} $CGAL_DIR") + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' ${CMAKE_OPTS} $CGAL_DIR 2>&1 |tee package_installation.log fi LIST_TEST_FILE="${CGAL_ROOT}/list_test_packages" if [ -f ${LIST_TEST_FILE} ]; then @@ -257,19 +269,18 @@ run_test_on_platform() fi INIT="" for pkg in $LIST_TEST_PACKAGES; do - if [ -z "$INIT" ]; then - TO_TEST=$pkg - INIT="y" - else - TO_TEST="${TO_TEST}|$pkg" - fi + if [ -z "$INIT" ]; then + TO_TEST=$pkg + INIT="y" + else + TO_TEST="${TO_TEST}|$pkg" + fi done - - CTEST_OPTS="-T Start -T Test -j${NUMBER_OF_PROCESSORS} ${DO_NOT_TEST:+-E execution___of__} --timeout 1200" + 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 + ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .}> tmp.txt else - ctest ${CTEST_OPTS} ${TO_TEST:+"-L ${TO_TEST}" } ${KEEP_TESTS:+-FC .}|tee tmp.txt + ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .}|tee tmp.txt fi ##################### ## GET RESULTS ## @@ -280,13 +291,15 @@ run_test_on_platform() RESULT_FILE=./"results_${CGAL_TESTER}_${PLATFORM}.txt" rm -f "$RESULT_FILE" touch "$RESULT_FILE" - sed -n '/CGAL_VERSION /s/#define //p' < "$CGAL_DIR/${INSTALLATION_DIR}include/CGAL/version.h" >> "$RESULT_FILE" + if [ -z "${SCRIPTS_DIR}" ]; then + sed -n '/CGAL_VERSION /s/#define //p' < "$CGAL_DIR/${INSTALLATION_DIR}include/CGAL/version.h" >> "$RESULT_FILE" + else + echo "CGAL_VERSION ${CGAL_GIT_VERSION}">> "$RESULT_FILE" + fi 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 ${CGAL_DIR}/${TESTSUITE_DIR}test/parse-ctest-dashboard-xml.py $CGAL_TESTER $PLATFORM @@ -296,6 +309,8 @@ run_test_on_platform() done OUTPUT_FILE=results_${CGAL_TESTER}_${PLATFORM}.tar TEST_REPORT="TestReport_${CGAL_TESTER}_${PLATFORM}" + mkdir -p Installation + cp "${CGAL_BINARY_DIR}/package_installation.log" "Installation/${TEST_REPORT}" rm -f $OUTPUT_FILE $OUTPUT_FILE.gz tar cf $OUTPUT_FILE results_${CGAL_TESTER}_${PLATFORM}.txt */"$TEST_REPORT"