From 07cfbc21d8eb2d326854e918f7a4185480c347ad Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Tue, 30 Nov 2021 10:23:20 +0100 Subject: [PATCH] Update all testsuite scripts, using master versions --- Scripts/developer_scripts/autotest_cgal | 26 +++- .../autotest_cgal_with_ctest | 41 +++++- .../run_testsuite_with_ctest | 60 ++++---- .../test/collect_cgal_testresults_from_cmake | 131 +++++------------- Testsuite/test/parse-ctest-dashboard-xml.py | 25 +++- 5 files changed, 138 insertions(+), 145 deletions(-) diff --git a/Scripts/developer_scripts/autotest_cgal b/Scripts/developer_scripts/autotest_cgal index 3948ceda80d..079260d565d 100755 --- a/Scripts/developer_scripts/autotest_cgal +++ b/Scripts/developer_scripts/autotest_cgal @@ -24,7 +24,7 @@ #sets the umask to 022 & 0777 umask 022 -# Warn deprecated use of enviroment variables to pass on flags +# Warn deprecated use of environment variables to pass on flags if [ -n "$TESTSUITE_CXXFLAGS" ] ; then echo "\$TESTSUITE_CXXFLAGS is deprecated. Please use the CMAKE variable (CMAKE|CGAL)_CXX_FLAGS instead" >&2; fi @@ -380,6 +380,8 @@ setup_dirs() CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` CGAL_TEST_DIR=${CGAL_DIR}/test + CGAL_DATA_DIR=${CGAL_DIR}/data + export CGAL_DATA_DIR=$(echo "$CGAL_DATA_DIR" | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//') if [ ! -d "${CGAL_DIR}/cmake" ]; then mkdir "${CGAL_DIR}/cmake" @@ -619,9 +621,7 @@ LIST_TEST_PACKAGES='${LIST_TEST_PACKAGES}' CGAL_ROOT='${CGAL_ROOT}' rm -rf '${CGAL_BINARY_DIR}/test'; - if [ -f '${LIST_TEST_PACKAGES}' ]; then - mkdir '${CGAL_BINARY_DIR}/test' cp '${CGAL_TEST_DIR}/collect_cgal_testresults_from_cmake' '${CGAL_BINARY_DIR}/test' @@ -633,7 +633,10 @@ if [ -f '${LIST_TEST_PACKAGES}' ]; then for PACKAGE in \$(ls "${CGAL_TEST_DIR}"); do if [ -d "${CGAL_TEST_DIR}/\$PACKAGE" ]; then if source '${LIST_TEST_PACKAGES}' '${CGAL_ROOT}' | egrep -q \$PACKAGE; then - mkdir "\${CGAL_BINARY_DIR}/test/\${PACKAGE}" + mkdir "${CGAL_BINARY_DIR}/test/\${PACKAGE}" + cp -r "${CGAL_TEST_DIR}/\${PACKAGE}" '${CGAL_BINARY_DIR}/test' + elif [ "\$PACKAGE" = "resources" ]; then + mkdir "${CGAL_BINARY_DIR}/test/\${PACKAGE}" cp -r "${CGAL_TEST_DIR}/\${PACKAGE}" '${CGAL_BINARY_DIR}/test' else mkdir "${CGAL_BINARY_DIR}/test/\${PACKAGE}" @@ -661,7 +664,20 @@ echo 'COLLECTING RESULTS'; ./collect_cgal_testresults_from_cmake; if [ -n "\$COLLECT_DEMOS_BINARIES" ]; then echo 'COLLECTING DEMOS BINARIES'; - tar czvf '${CGAL_TEST_DIR}/demos_${CGAL_TESTER}_${PLATFORM}.tar.gz' *_Demo/*.exe *_Demo/*.dll *_Demo/*/*.dll *_Demo/*/*/*.dll + echo "cp ${CGAL_TEST_DIR}/../developer_scripts/cgal_demo_copy_all_dlls_cygwin.sh ${CGAL_BINARY_DIR}/test" + cp "${CGAL_TEST_DIR}/../developer_scripts/cgal_demo_copy_all_dlls_cygwin.sh" "${CGAL_BINARY_DIR}/test" +EOF + cat >> "$file" <<'EOF' + for demo_dir in *_Demo; do + echo "pushd ${demo_dir}" + pushd "${demo_dir}" + bash ../cgal_demo_copy_all_dlls_cygwin.sh "${demo_dir}_with_dlls" "" + mv "${demo_dir}_with_dlls" .. + popd + done +EOF +cat >> "$file" <> "${1}" } - +error() +{ + if [ -n "${CONSOLE_OUTPUT}" ]; then + printf "\nERROR: ${*}, exiting.\n" >&2 + fi + printf "\nERROR: ${*}, exiting.\n" >> "${ACTUAL_LOGFILE}" + ${COMPRESSOR} -9f "${ACTUAL_LOGFILE}" + FILENAME="${CGAL_RELEASE_ID}-log`datestr`.gz" + mv "${ACTUAL_LOGFILE}.gz" "${LOGS_DIR}/${FILENAME}" + if [ ! "${MAIL_ADDRESS}" = "must_be_set_in_.autocgalrc" ]; then + for i in ${MAIL_ADDRESS}; do + printf "ERROR\n${LOGS_DIR}/${FILENAME}\n" | \ + ${SENDMAIL} -s "completed autotest" "${i}" + done + fi + rm -rf "$LOCK_FILE"; + exit 1 +} # ---------------------------------------------------------------------------------------- # Downloads the file "LATEST" whose contents indicates which release to test @@ -73,8 +97,10 @@ download_latest() fi log "${ACTUAL_LOGFILE}" "getting LATEST" if [ -n "${USE_CURL}" ]; then + echo "using curl..." ${CURL} ${CURL_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 else + echo "using wget..." ${WGET} ${WGET_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 fi if [ ! -f "LATEST" ]; then @@ -90,8 +116,7 @@ download_latest() abort_if_latest_already_tested() { if [ -r "RELEASE_NR" ]; then - cmp LATEST RELEASE_NR >> "${ACTUAL_LOGFILE}" - if [ ! ${?} != 0 ]; then + if cmp LATEST RELEASE_NR >> "${ACTUAL_LOGFILE}"; then log "${ACTUAL_LOGFILE}" "This release has already been tested." rm -f "$LOCK_FILE"; exit 1; @@ -258,6 +283,8 @@ else CGAL_DIR=`readlink "${CGAL_HOME}/CGAL-I"` fi +CGAL_DIR=$(echo "$CGAL_DIR" | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//') + CGAL_RELEASE_ID=$(cat last_release_id) for HOST in ${BUILD_HOSTS}; do if [ "$HOST" != "localhost" ]; then diff --git a/Scripts/developer_scripts/run_testsuite_with_ctest b/Scripts/developer_scripts/run_testsuite_with_ctest index e576403c326..637f86f6227 100644 --- a/Scripts/developer_scripts/run_testsuite_with_ctest +++ b/Scripts/developer_scripts/run_testsuite_with_ctest @@ -176,7 +176,7 @@ setup_dirs() if [ -n "${USE_REFERENCE_PLATFORMS}" ]; then collect_all_reference_platforms fi - + for PLATFORM in ${PLATFORMS}; do CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} @@ -226,9 +226,9 @@ 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" "$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}" @@ -258,20 +258,25 @@ run_test_on_platform() 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_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}.cmake" + + if [ -f "${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" ]; then + source "${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" + else + INIT_FILE="${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}.cmake" + fi 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}"} -DBUILD_TESTING=ON -DWITH_tests=ON -DCGAL_TEST_SUITE=ON $CGAL_DIR>installation.log 2>&1 rm CMakeCache.txt - CMAKE_OPTS="-DCGAL_TEST_SUITE=ON -DCMAKE_VERBOSE_MAKEFILE=ON" + CMAKE_OPTS="-DCGAL_TEST_SUITE=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DWITH_tests=ON" if [ -n "${SCRIPTS_DIR}" ]; then CMAKE_OPTS="${CMAKE_OPTS} -DWITH_examples=ON -DWITH_demos=ON" fi if [ -z "${SHOW_PROGRESS}" ]; then - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 + cmake ${INIT_FILE:+"-C${INIT_FILE}"} -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 else - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR 2>&1 |tee package_installation.log + cmake ${INIT_FILE:+"-C${INIT_FILE}"} -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR 2>&1 |tee package_installation.log fi LIST_TEST_FILE="${CGAL_HOME}/list_test_packages" if [ -f ${LIST_TEST_FILE} ]; then @@ -279,7 +284,7 @@ run_test_on_platform() fi INIT="" for pkg in $LIST_TEST_PACKAGES; do - if [ -z "$INIT" ]; then + if [ -z "$INIT" ]; then TO_TEST=$pkg INIT="y" else @@ -289,11 +294,15 @@ run_test_on_platform() #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_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 + CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS}" + fi 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 - ctest ${CTEST_OPTS} ${TO_TEST:+-L ${TO_TEST}} ${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 ##################### ## GET RESULTS ## @@ -309,18 +318,21 @@ run_test_on_platform() else echo "CGAL_VERSION ${CGAL_GIT_VERSION}">> "$RESULT_FILE" fi + sed -n '/The CXX compiler/s/-- The CXX compiler identification is/COMPILER_VERSION =/p' < "${CGAL_BINARY_DIR}/installation.log" |sed -E "s/ = (.*)/\ = '\1\'/">> "$RESULT_FILE" echo "TESTER ${CGAL_TESTER}" >> "$RESULT_FILE" echo "TESTER_NAME ${CGAL_TESTER}" >> "$RESULT_FILE" echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$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" #if git branch, create empty scm file for python script if [ -n "${SCRIPTS_DIR}" ]; then touch ../../../../../.scm-branch fi python3 ${CGAL_DIR}/${TESTSUITE_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 @@ -329,7 +341,7 @@ run_test_on_platform() mkdir -p Installation chmod 777 Installation cat "${CGAL_BINARY_DIR}/package_installation.log" >> "Installation/${TEST_REPORT}" - + #call the python script to complete the results report. python3 ${CGAL_DIR}/${TESTSUITE_DIR}test/post_process_ctest_results.py Installation/${TEST_REPORT} ${TEST_REPORT} results_${CGAL_TESTER}_${PLATFORM}.txt rm -f $OUTPUT_FILE $OUTPUT_FILE.gz @@ -351,7 +363,7 @@ run_test_on_host() collect_all_current_platforms "${CGAL_BINARY_DIR_BASE}" fi - for PLATFORM in ${PLATFORMS}; do + for PLATFORM in ${PLATFORMS}; do run_test_on_platform "${PLATFORM}" publish_results "${PLATFORM}" if [ -z "${KEEP_TESTS}" ]; then @@ -365,21 +377,7 @@ run_test_on_host() 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 - +# Setup cmake log "${ACTUAL_LOGFILE}" "running the testsuites" if [ -n "${CONSOLE_OUTPUT}" ]; then printf "\n-------------------------------------------------------\n" diff --git a/Testsuite/test/collect_cgal_testresults_from_cmake b/Testsuite/test/collect_cgal_testresults_from_cmake index bf747196dca..a7098c435e0 100755 --- a/Testsuite/test/collect_cgal_testresults_from_cmake +++ b/Testsuite/test/collect_cgal_testresults_from_cmake @@ -9,8 +9,8 @@ if [ -z "${CGAL_TEST_PLATFORM}" ]; then - - CGAL_TEST_PLATFORM=`dirname $PWD` + + CGAL_TEST_PLATFORM=`dirname $PWD` echo "CGAL_TEST_PLATFORM not in the environment, setting it to ${CGAL_TEST_PLATFORM}" fi @@ -24,14 +24,16 @@ GENERAL_BUILD_LOGFILE='' PLATFORM_BUILD_LOGFILE='' TEST_REPORT='' RESULT_FILE='' -shared_or_static='' #print_testresult # print result on stdout # print timings on fd3 print_testresult() { - if [ ! -f ErrorOutput_$1 ] ; then + if [ -f skipped ]; then + RESULT="s" + TIMING="0" + elif [ ! -f ErrorOutput_$1 ] ; then RESULT="?" TIMING="?" else @@ -51,19 +53,19 @@ print_testresult() # 'QMessageBox::warning'. if grep -v -F 'CMake Warning at /usr/share/cmake/Modules/FindBoost' CompilerOutput_$1 ProgramOutput.*.$1 | grep -i -E -q '(^|[^a-zA-Z_,:-])warning' then - if grep -v -F 'CMake Warning at /usr/share/cmake/Modules/FindBoost' CompilerOutput_$1 ProgramOutput.*.$1 | grep -i -E '(^|[^a-zA-Z_,:-])warning' | grep -i -q "include[/\]CGAL\|cmake" + if grep -v -F 'CMake Warning at /usr/share/cmake/Modules/FindBoost' CompilerOutput_$1 ProgramOutput.*.$1 | grep -i -E '(^|[^a-zA-Z_,:-])warning' | grep -i -q "include[/\]CGAL\|cmake\|CGAL warning" then RESULT="w" else RESULT="t" fi else - if grep -E -q 'NOTICE: .*(need|require|incompatible).*and.*will not be' CompilerOutput_$1 - then - RESULT="r" + if grep -E -q 'NOTICE: .*(need|require|incompatible).*will not be' CompilerOutput_$1 + then + RESULT="r" else RESULT="y" - fi + fi fi fi TIMING=`awk '/^ # Running time: / {print $4}' < ErrorOutput_$1` @@ -72,81 +74,19 @@ print_testresult() echo "$2 $RESULT" } - -parse_shared_or_static() -{ - if [ -f "${PLATFORM_BUILD_LOGFILE}" ] ; then - - if grep "Building shared libraries" ${PLATFORM_BUILD_LOGFILE} >/dev/null 2>&1; then - shared_or_static='shared' - else - shared_or_static='static' - fi - - else - shared_or_static='shared' - fi -} - parse_flags_and_third_party_choices() { - grep -e "^-- USING " ${PLATFORM_BUILD_LOGFILE} >> $RESULT_FILE + grep -e "^-- USING " ${PLATFORM_BUILD_LOGFILE} >> $RESULT_FILE echo "------------" >> $RESULT_FILE } -parse_lib_building_results() -{ - libname=$1 - target=$2 - - if [ ! -e "${libname}_${shared_or_static}" ]; then - mkdir "${libname}_${shared_or_static}" - fi - - y_or_no='n' - - configured='' - - if [ -f "${PLATFORM_BUILD_LOGFILE}" ]; then - - if grep -q "Built target ${target}" ${PLATFORM_BUILD_LOGFILE} ; then - y_or_no='y' - fi - - marker_beg=`grep -e "${target}.dir/depend$" ${PLATFORM_BUILD_LOGFILE} | head -1` - - if [ -n "${marker_beg}" ]; then - - configured='y' - - if [ ! "$target" = "CGAL" ]; then - cat ${PLATFORM_BUILD_LOGFILE} | sed -n "\|${marker_beg}|,\|depend$| p" >> ${libname}_${shared_or_static}/$TEST_REPORT - fi - - # Test if there is a warning in the build log. - if [ "$y_or_no" = "y" ]; then - # See the comment line 38. - if grep -i -E -q '(^|[^a-zA-Z_,:-])warning' ${libname}_${shared_or_static}/$TEST_REPORT ; then - y_or_no='w' - fi - fi - fi - fi - - if [ -z "${configured}" ] ; then - y_or_no='r' - echo "Not configured!" >> ${libname}_${shared_or_static}/$TEST_REPORT - fi - - echo ${libname}_${shared_or_static} $y_or_no >> $RESULT_FILE -} output_main_logs() { [ -e Installation ] || mkdir "Installation" - + INSTALLATION_TEST_REPORT="Installation/$TEST_REPORT" - + echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " General Build Log " >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -154,9 +94,9 @@ output_main_logs() if [ -f "${GENERAL_BUILD_LOGFILE}" ] ; then cat "${GENERAL_BUILD_LOGFILE}" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " Platform-specific Build Log " >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -164,9 +104,9 @@ output_main_logs() if [ -f "${PLATFORM_BUILD_LOGFILE}" ] ; then cat "${PLATFORM_BUILD_LOGFILE}" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + if [ -f "$HOME/.autocgal_with_cmake_rc" ] ; then echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -184,7 +124,7 @@ output_main_logs() cat "$HOME/.autocgalrc" >> "$INSTALLATION_TEST_REPORT" fi fi - + if [ -f "../setup" ] ; then echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -193,8 +133,8 @@ output_main_logs() echo "" >> "$INSTALLATION_TEST_REPORT" cat "../setup" >> "$INSTALLATION_TEST_REPORT" fi - - + + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CMakeCache.txt" >> "$INSTALLATION_TEST_REPORT" @@ -203,9 +143,9 @@ output_main_logs() if [ -f "../CMakeCache.txt" ] ; then cat "../CMakeCache.txt" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " include/CGAL/compiler_config.h" >> "$INSTALLATION_TEST_REPORT" @@ -214,9 +154,9 @@ output_main_logs() if [ -f "../include/CGAL/compiler_config.h" ] ; then cat "../include/CGAL/compiler_config.h" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CGALConfig.cmake" >> "$INSTALLATION_TEST_REPORT" @@ -225,9 +165,9 @@ output_main_logs() if [ -f "../CGALConfig.cmake" ] ; then cat "../CGALConfig.cmake" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CMakeError.log" >> "$INSTALLATION_TEST_REPORT" @@ -236,9 +176,9 @@ output_main_logs() if [ -f "../CMakeFiles/CMakeError.log" ] ; then cat "../CMakeFiles/CMakeError.log" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CMakeOutput.log" >> "$INSTALLATION_TEST_REPORT" @@ -247,9 +187,9 @@ output_main_logs() if [ -f "../CMakeFiles/CMakeOutput.log" ] ; then cat "../CMakeFiles/CMakeOutput.log" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + } echo "---------------------------------------------------------------" @@ -276,17 +216,10 @@ echo "CGAL_TEST_PLATFORM ${CGAL_TEST_PLATFORM}" >> "$RESULT_FILE" echo "General installation log file: ${GENERAL_BUILD_LOGFILE}" >> "$RESULT_FILE" echo "Host-specific installation log file: ${PLATFORM_BUILD_LOGFILE}" >> "$RESULT_FILE" -parse_shared_or_static - -output_main_logs +output_main_logs parse_flags_and_third_party_choices -parse_lib_building_results "libCGAL" "CGAL" -parse_lib_building_results "libCGALCore" "CGAL_Core" -parse_lib_building_results "libCGALimageIO" "CGAL_ImageIO" -parse_lib_building_results "libCGALQt5" "CGAL_Qt5" - for DIR in $TEST_DIRECTORIES ; do if [ -d "$DIR" ] ; then echo " $DIR ..." diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index 4942e7cec5d..dc8524075ae 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -76,23 +76,42 @@ for t_id in range(0, len(tests)): labels.add(label) tests_per_label[label].append(t) +warning_pattern=re.compile(r'(.*([^a-zA-Z_,:-])warning)', flags=re.IGNORECASE) +w_det=re.compile("warning"); +filter_pattern=re.compile(r'cmake|cgal', flags=re.IGNORECASE); with open_file_create_dir(result_file_name.format(dir=os.getcwd(), tester=tester_name, platform=platform_name), 'a+') as results: for label, tests in tests_per_label.items(): + counts={"n": 0, "w": 0, "t": 0} result_for_label='y' with open_file_create_dir("{}/error.txt".format(label), 'w') as error: for t in tests: 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': - result_for_label='n' - elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])warning', t['Output'], flags=re.IGNORECASE): - result_for_label='w' + counts["n"]+=1 + elif t['Output'] != None and w_det.search(t['Output']): + entries = re.split("\n+", t['Output']) + for entry in entries: + m=warning_pattern.search(entry) + if m: + n = filter_pattern.search(m.group(0)) + if n: + counts["w"]+=1 + break; + else: + counts["t"]+=1 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 "") + if counts["n"] > 0: + result_for_label='n' + elif counts["w"] > 0: + result_for_label='w' + elif counts["t"] > 0: + result_for_label='t' print("{label} {result}".format(label=label, result=result_for_label), file=results)