Update all testsuite scripts, using master versions

This commit is contained in:
Laurent Rineau 2021-11-30 10:23:20 +01:00
parent a6e555c2ac
commit 07cfbc21d8
5 changed files with 138 additions and 145 deletions

View File

@ -24,7 +24,7 @@
#sets the umask to 022 & 0777 #sets the umask to 022 & 0777
umask 022 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 if [ -n "$TESTSUITE_CXXFLAGS" ] ; then
echo "\$TESTSUITE_CXXFLAGS is deprecated. Please use the CMAKE variable (CMAKE|CGAL)_CXX_FLAGS instead" >&2; echo "\$TESTSUITE_CXXFLAGS is deprecated. Please use the CMAKE variable (CMAKE|CGAL)_CXX_FLAGS instead" >&2;
fi fi
@ -380,6 +380,8 @@ setup_dirs()
CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"` CGAL_DIR=`readlink "${CGAL_ROOT}/CGAL-I"`
CGAL_TEST_DIR=${CGAL_DIR}/test 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 if [ ! -d "${CGAL_DIR}/cmake" ]; then
mkdir "${CGAL_DIR}/cmake" mkdir "${CGAL_DIR}/cmake"
@ -619,9 +621,7 @@ LIST_TEST_PACKAGES='${LIST_TEST_PACKAGES}'
CGAL_ROOT='${CGAL_ROOT}' CGAL_ROOT='${CGAL_ROOT}'
rm -rf '${CGAL_BINARY_DIR}/test'; rm -rf '${CGAL_BINARY_DIR}/test';
if [ -f '${LIST_TEST_PACKAGES}' ]; then if [ -f '${LIST_TEST_PACKAGES}' ]; then
mkdir '${CGAL_BINARY_DIR}/test' mkdir '${CGAL_BINARY_DIR}/test'
cp '${CGAL_TEST_DIR}/collect_cgal_testresults_from_cmake' '${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 for PACKAGE in \$(ls "${CGAL_TEST_DIR}"); do
if [ -d "${CGAL_TEST_DIR}/\$PACKAGE" ]; then if [ -d "${CGAL_TEST_DIR}/\$PACKAGE" ]; then
if source '${LIST_TEST_PACKAGES}' '${CGAL_ROOT}' | egrep -q \$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' cp -r "${CGAL_TEST_DIR}/\${PACKAGE}" '${CGAL_BINARY_DIR}/test'
else else
mkdir "${CGAL_BINARY_DIR}/test/\${PACKAGE}" mkdir "${CGAL_BINARY_DIR}/test/\${PACKAGE}"
@ -661,7 +664,20 @@ echo 'COLLECTING RESULTS';
./collect_cgal_testresults_from_cmake; ./collect_cgal_testresults_from_cmake;
if [ -n "\$COLLECT_DEMOS_BINARIES" ]; then if [ -n "\$COLLECT_DEMOS_BINARIES" ]; then
echo 'COLLECTING DEMOS BINARIES'; 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" <<EOF
tar czvf "${CGAL_TEST_DIR}/demos_${CGAL_TESTER}_${PLATFORM}.tar.gz" *_Demo_with_dlls/*
fi fi
echo 'COPYING RESULTS'; echo 'COPYING RESULTS';
cp 'results_${CGAL_TESTER}_${PLATFORM}.tar.gz' 'results_${CGAL_TESTER}_${PLATFORM}.txt' '${CGAL_TEST_DIR}'; cp 'results_${CGAL_TESTER}_${PLATFORM}.tar.gz' 'results_${CGAL_TESTER}_${PLATFORM}.txt' '${CGAL_TEST_DIR}';

View File

@ -1,5 +1,3 @@
#!/bin/bash
#!/bin/bash #!/bin/bash
#usage : script [-c -l -n -s -k] testsuite_dir #usage : script [-c -l -n -s -k] testsuite_dir
@ -23,8 +21,8 @@ export TAR="tar"
export GUNZIP="gunzip" export GUNZIP="gunzip"
export COMPRESSOR="gzip" export COMPRESSOR="gzip"
export CONSOLE_OUTPUT="y" export CONSOLE_OUTPUT="y"
export CGAL_HOME=`pwd` export CGAL_HOME=$(pwd | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//')
export USE_TARGZ="n" export USE_TARGZ="y"
export USE_TARBZ="n" export USE_TARBZ="n"
export CGAL_RELEASE="" export CGAL_RELEASE=""
export LOGS_DIR="" export LOGS_DIR=""
@ -35,6 +33,15 @@ export INSTALLATION_DIR=""
export TESTSUITE_DIR="" export TESTSUITE_DIR=""
USE_LATEST_UNZIPPED="" USE_LATEST_UNZIPPED=""
# ----------------------------------------------------------------------------------------
# produce a string containing the actual date/time
# (used to identify files)
# ----------------------------------------------------------------------------------------
datestr()
{
date +%d%m%Y%H%M
}
# ---------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------
# Logging functions # Logging functions
# ---------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------
@ -61,7 +68,24 @@ log_done()
printf "\n-------------------------------------------------------\n" >> "${1}" printf "\n-------------------------------------------------------\n" >> "${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 # Downloads the file "LATEST" whose contents indicates which release to test
@ -73,8 +97,10 @@ download_latest()
fi fi
log "${ACTUAL_LOGFILE}" "getting LATEST" log "${ACTUAL_LOGFILE}" "getting LATEST"
if [ -n "${USE_CURL}" ]; then if [ -n "${USE_CURL}" ]; then
echo "using curl..."
${CURL} ${CURL_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 ${CURL} ${CURL_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1
else else
echo "using wget..."
${WGET} ${WGET_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1 ${WGET} ${WGET_OPTS} "${LATEST_LOCATION}" >> "${ACTUAL_LOGFILE}" 2>&1
fi fi
if [ ! -f "LATEST" ]; then if [ ! -f "LATEST" ]; then
@ -90,8 +116,7 @@ download_latest()
abort_if_latest_already_tested() abort_if_latest_already_tested()
{ {
if [ -r "RELEASE_NR" ]; then if [ -r "RELEASE_NR" ]; then
cmp LATEST RELEASE_NR >> "${ACTUAL_LOGFILE}" if cmp LATEST RELEASE_NR >> "${ACTUAL_LOGFILE}"; then
if [ ! ${?} != 0 ]; then
log "${ACTUAL_LOGFILE}" "This release has already been tested." log "${ACTUAL_LOGFILE}" "This release has already been tested."
rm -f "$LOCK_FILE"; rm -f "$LOCK_FILE";
exit 1; exit 1;
@ -258,6 +283,8 @@ else
CGAL_DIR=`readlink "${CGAL_HOME}/CGAL-I"` CGAL_DIR=`readlink "${CGAL_HOME}/CGAL-I"`
fi fi
CGAL_DIR=$(echo "$CGAL_DIR" | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//')
CGAL_RELEASE_ID=$(cat last_release_id) CGAL_RELEASE_ID=$(cat last_release_id)
for HOST in ${BUILD_HOSTS}; do for HOST in ${BUILD_HOSTS}; do
if [ "$HOST" != "localhost" ]; then if [ "$HOST" != "localhost" ]; then

View File

@ -258,20 +258,25 @@ run_test_on_platform()
CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM}
cd "${CGAL_BINARY_DIR}" cd "${CGAL_BINARY_DIR}"
log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}"
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 if [ ! -f "${INIT_FILE}" ]; then
echo "error NEED A INIT FILE !" echo "error NEED A INIT FILE !"
fi 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 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 if [ -n "${SCRIPTS_DIR}" ]; then
CMAKE_OPTS="${CMAKE_OPTS} -DWITH_examples=ON -DWITH_demos=ON" CMAKE_OPTS="${CMAKE_OPTS} -DWITH_examples=ON -DWITH_demos=ON"
fi fi
if [ -z "${SHOW_PROGRESS}" ]; then 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 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 fi
LIST_TEST_FILE="${CGAL_HOME}/list_test_packages" LIST_TEST_FILE="${CGAL_HOME}/list_test_packages"
if [ -f ${LIST_TEST_FILE} ]; then if [ -f ${LIST_TEST_FILE} ]; then
@ -289,11 +294,15 @@ run_test_on_platform()
#unsets the limit of 1024 bits for the logs through ssh #unsets the limit of 1024 bits for the logs through ssh
echo "SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000)" > CTestCustom.cmake echo "SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000)" > CTestCustom.cmake
echo "SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000)" >> CTestCustom.cmake echo "SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000)" >> CTestCustom.cmake
CTEST_OPTS="-T Start -T Test --timeout 1200 -j${NUMBER_OF_PROCESSORS} ${DO_NOT_TEST:+-E execution___of__} "
CTEST_OPTS="-T Start -T Test --timeout 1200 ${DO_NOT_TEST:+-E execution___of__}"
if uname | grep -q "CYGWIN"; then
CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS}"
fi
if [ -z "${SHOW_PROGRESS}" ]; then if [ -z "${SHOW_PROGRESS}" ]; then
ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .}> tmp.txt ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}>tmp.txt
else else
ctest ${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 fi
##################### #####################
## GET RESULTS ## ## GET RESULTS ##
@ -309,11 +318,14 @@ run_test_on_platform()
else else
echo "CGAL_VERSION ${CGAL_GIT_VERSION}">> "$RESULT_FILE" echo "CGAL_VERSION ${CGAL_GIT_VERSION}">> "$RESULT_FILE"
fi 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 ${CGAL_TESTER}" >> "$RESULT_FILE"
echo "TESTER_NAME ${CGAL_TESTER}" >> "$RESULT_FILE" echo "TESTER_NAME ${CGAL_TESTER}" >> "$RESULT_FILE"
echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$RESULT_FILE" echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$RESULT_FILE"
echo "CGAL_TEST_PLATFORM ${PLATFORM}" >> "$RESULT_FILE" echo "CGAL_TEST_PLATFORM ${PLATFORM}" >> "$RESULT_FILE"
grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log" >> $RESULT_FILE grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log"|sort -u >> $RESULT_FILE
#Use sed to get the content of DEBUG or RELEASE CXX FLAGS so that Multiconfiguration platforms do provide their CXXXFLAGS to the testsuite page (that greps USING CXXFLAGS to get info)
sed -i -E 's/(^-- USING )(DEBUG|RELEASE) (CXXFLAGS)/\1\3/' $RESULT_FILE
echo "------------" >> "$RESULT_FILE" echo "------------" >> "$RESULT_FILE"
#if git branch, create empty scm file for python script #if git branch, create empty scm file for python script
if [ -n "${SCRIPTS_DIR}" ]; then if [ -n "${SCRIPTS_DIR}" ]; then
@ -366,20 +378,6 @@ setup_dirs
# Setup cmake # 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" log "${ACTUAL_LOGFILE}" "running the testsuites"
if [ -n "${CONSOLE_OUTPUT}" ]; then if [ -n "${CONSOLE_OUTPUT}" ]; then
printf "\n-------------------------------------------------------\n" printf "\n-------------------------------------------------------\n"

View File

@ -24,14 +24,16 @@ GENERAL_BUILD_LOGFILE=''
PLATFORM_BUILD_LOGFILE='' PLATFORM_BUILD_LOGFILE=''
TEST_REPORT='' TEST_REPORT=''
RESULT_FILE='' RESULT_FILE=''
shared_or_static=''
#print_testresult <platform> <directory> #print_testresult <platform> <directory>
# print result on stdout # print result on stdout
# print timings on fd3 # print timings on fd3
print_testresult() print_testresult()
{ {
if [ ! -f ErrorOutput_$1 ] ; then if [ -f skipped ]; then
RESULT="s"
TIMING="0"
elif [ ! -f ErrorOutput_$1 ] ; then
RESULT="?" RESULT="?"
TIMING="?" TIMING="?"
else else
@ -51,19 +53,19 @@ print_testresult()
# 'QMessageBox::warning'. # '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' 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 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 then
RESULT="w" RESULT="w"
else else
RESULT="t" RESULT="t"
fi fi
else else
if grep -E -q 'NOTICE: .*(need|require|incompatible).*and.*will not be' CompilerOutput_$1 if grep -E -q 'NOTICE: .*(need|require|incompatible).*will not be' CompilerOutput_$1
then then
RESULT="r" RESULT="r"
else else
RESULT="y" RESULT="y"
fi fi
fi fi
fi fi
TIMING=`awk '/^ # Running time: / {print $4}' < ErrorOutput_$1` TIMING=`awk '/^ # Running time: / {print $4}' < ErrorOutput_$1`
@ -72,74 +74,12 @@ print_testresult()
echo "$2 $RESULT" 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() 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 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() output_main_logs()
{ {
@ -276,17 +216,10 @@ echo "CGAL_TEST_PLATFORM ${CGAL_TEST_PLATFORM}" >> "$RESULT_FILE"
echo "General installation log file: ${GENERAL_BUILD_LOGFILE}" >> "$RESULT_FILE" echo "General installation log file: ${GENERAL_BUILD_LOGFILE}" >> "$RESULT_FILE"
echo "Host-specific installation log file: ${PLATFORM_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_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 for DIR in $TEST_DIRECTORIES ; do
if [ -d "$DIR" ] ; then if [ -d "$DIR" ] ; then
echo " $DIR ..." echo " $DIR ..."

View File

@ -76,23 +76,42 @@ for t_id in range(0, len(tests)):
labels.add(label) labels.add(label)
tests_per_label[label].append(t) 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(), with open_file_create_dir(result_file_name.format(dir=os.getcwd(),
tester=tester_name, tester=tester_name,
platform=platform_name), 'a+') as results: platform=platform_name), 'a+') as results:
for label, tests in tests_per_label.items(): for label, tests in tests_per_label.items():
counts={"n": 0, "w": 0, "t": 0}
result_for_label='y' result_for_label='y'
with open_file_create_dir("{}/error.txt".format(label), 'w') as error: with open_file_create_dir("{}/error.txt".format(label), 'w') as error:
for t in tests: 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) print(" {result} {name} in {time} s : {value} ".format(result = "successful " if (t['Status'] == 'passed') else "ERROR: ", name = t['Name'], value = t['ExitValue'] if(t['ExitValue'] != "") else "SUCCESS" , time = t['ExecutionTime']), file=error)
if t['Status'] != 'passed': if t['Status'] != 'passed':
result_for_label='n' counts["n"]+=1
elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])warning', t['Output'], flags=re.IGNORECASE): elif t['Output'] != None and w_det.search(t['Output']):
result_for_label='w' 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: with io.open("{}/ProgramOutput.{}".format(label, t['Name']), mode="w", encoding="utf-8") as f:
print("{}/ProgramOutput.{}".format(label, t['Name'])) print("{}/ProgramOutput.{}".format(label, t['Name']))
f.write(t['Output'] if t['Output'] != None else "") 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) print("{label} {result}".format(label=label, result=result_for_label), file=results)