Allow to relaunch the "end" of the testsuite: results collection, and

results re-submission.
This commit is contained in:
Laurent Rineau 2008-09-26 10:23:34 +00:00
parent c16a1ec391
commit 2e5889e7a9
1 changed files with 57 additions and 41 deletions

View File

@ -574,7 +574,8 @@ run_test_on_host_and_platform()
rm -f "${CGAL_BINARY_DIR}/localtestscript" rm -f "${CGAL_BINARY_DIR}/localtestscript"
fi fi
cat >> "${CGAL_BINARY_DIR}/localtestscript" <<EOF for file in "${CGAL_BINARY_DIR}/localtestscript" "${CGAL_BINARY_DIR}/localtestscript-redo-results-collection"; do
cat >> "$file" <<EOF
CGAL_TESTER='${CGAL_TESTER}'; CGAL_TESTER='${CGAL_TESTER}';
CGAL_TESTER_NAME='${CGAL_TESTER_NAME}'; CGAL_TESTER_NAME='${CGAL_TESTER_NAME}';
CGAL_TESTER_ADDRESS='${CGAL_TESTER_ADDRESS}'; CGAL_TESTER_ADDRESS='${CGAL_TESTER_ADDRESS}';
@ -592,7 +593,9 @@ export CGAL_DIR;
export CGAL_TEST_HOST CGAL_TEST_PLATFORM; export CGAL_TEST_HOST CGAL_TEST_PLATFORM;
export CMAKE_GENERATOR; export CMAKE_GENERATOR;
export MAKE_CMD; export MAKE_CMD;
EOF
done
cat >> "${CGAL_BINARY_DIR}/localtestscript" <<EOF
LIST_TEST_PACKAGES='${LIST_TEST_PACKAGES}' LIST_TEST_PACKAGES='${LIST_TEST_PACKAGES}'
CGAL_ROOT='${CGAL_ROOT}' CGAL_ROOT='${CGAL_ROOT}'
@ -622,21 +625,25 @@ fi
cd '${CGAL_BINARY_DIR}/test'; cd '${CGAL_BINARY_DIR}/test';
[ -n "${ULIMIT_OPTIONS}" ] && ulimit ${ULIMIT_OPTIONS}; [ -n "${ULIMIT_OPTIONS}" ] && ulimit ${ULIMIT_OPTIONS};
nice ${NICE_OPTIONS} make ${MAKE_OPTS} -k -fmakefile2; nice ${NICE_OPTIONS} make ${MAKE_OPTS} -k -fmakefile2;
EOF
for file in "${CGAL_BINARY_DIR}/localtestscript" "${CGAL_BINARY_DIR}/localtestscript-redo-results-collection"; do
cat >> "$file" <<EOF
echo 'COLLECTING RESULTS'; echo 'COLLECTING RESULTS';
./collect_cgal_testresults_from_cmake; ./collect_cgal_testresults_from_cmake;
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}';
cd ..; cd ..;
EOF EOF
if [ -z "${KEEP_TESTS}" ]; then done
if [ -z "${KEEP_TESTS}" ]; then
cat >> "${CGAL_BINARY_DIR}/localtestscript" <<EOF cat >> "${CGAL_BINARY_DIR}/localtestscript" <<EOF
echo 'REMOVING LOCAL_TEST_DIR'; echo 'REMOVING LOCAL_TEST_DIR';
rm -rf '${CGAL_BINARY_DIR}/test' rm -rf '${CGAL_BINARY_DIR}/test'
EOF EOF
fi fi
chmod ugo+x "${CGAL_BINARY_DIR}/localtestscript" chmod ugo+x "${CGAL_BINARY_DIR}"/localtestscript*
if [ -n "${SHOW_PROGRESS}" ]; then if [ -n "${SHOW_PROGRESS}" ]; then
remote_command ${HOST} "${CGAL_BINARY_DIR}/localtestscript" | tee "${ACTUAL_LOGFILE}.test.${PLATFORM}" 2>&1 remote_command ${HOST} "${CGAL_BINARY_DIR}/localtestscript" | tee "${ACTUAL_LOGFILE}.test.${PLATFORM}" 2>&1
@ -646,44 +653,51 @@ EOF
log_done "${ACTUAL_LOGFILE}.test.${PLATFORM}" log_done "${ACTUAL_LOGFILE}.test.${PLATFORM}"
# fi
# collect results and put them on the web }
#
cd "${CGAL_TEST_DIR}"
log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "PUTTING RESULTS ON THE WEB"
log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "RESULTS COLLECTED ${PLATFORM}-${HOST}"
# If this file does not exist results collection failed. Fake a results so this fact is itself reported publish_results()
if [ ! -f "results_${CGAL_TESTER}_${PLATFORM}.txt" ]; then {
log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Results collection for tester ${CGAL_TESTER} and platform ${PLATFORM} failed!" HOST=${1}
echo "Results collection failed!" >> "results_${CGAL_TESTER}_${PLATFORM}.txt" PLATFORM=${2}
${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}.tar" "results_${CGAL_TESTER}_${PLATFORM}.tar.gz" "results_${CGAL_TESTER}_${PLATFORM}.txt" #
${COMPRESSOR} -9f "test_results-${HOST}.tar" # collect results and put them on the web
COMPILER=`printf "%s" "$2" | tr -c '[A-Za-z0-9]./[=-=]*_\'\''\":?() ' 'x'` #
FILENAME="${CGAL_RELEASE_ID}_${CGAL_TESTER}-test`datestr`-${COMPILER}-cmake.tar.gz" cd "${CGAL_TEST_DIR}"
LOGFILENAME="${CGAL_RELEASE_ID}-log`datestr`-${HOST}.gz" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "PUTTING RESULTS ON THE WEB"
${COMPRESSOR} -9f "${ACTUAL_LOGFILE}.test.${PLATFORM}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "RESULTS COLLECTED ${PLATFORM}-${HOST}"
mv "${ACTUAL_LOGFILE}.test.${PLATFORM}.gz" "${LOGS_DIR}/${LOGFILENAME}"
log "${ACTUAL_LOGFILE}" "Test results: ${CGAL_TEST_DIR}/test_results-${HOST}.tar.gz" # 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
if [ -z "${DO_NOT_UPLOAD}" ]; then ${TAR} cf "test_results-${HOST}_${PLATFORM}.tar" "results_${CGAL_TESTER}_${PLATFORM}.tar.gz" "results_${CGAL_TESTER}_${PLATFORM}.txt"
put_on_web "test_results-${HOST}.tar.gz" "${FILENAME}" ${COMPRESSOR} -9f "test_results-${HOST}_${PLATFORM}.tar"
fi 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 "${ACTUAL_LOGFILE}" "Test results: ${CGAL_TEST_DIR}/test_results-${HOST}_${PLATFORM}.tar.gz"
# notify the CGAL world
# if [ -z "${DO_NOT_UPLOAD}" ]; then
if [ ! "${MAIL_ADDRESS}" = "must_be_set_in_.autocgalrc" ]; then put_on_web "test_results-${HOST}_${PLATFORM}.tar.gz" "${FILENAME}"
for i in ${MAIL_ADDRESS}; do fi
echo "Notifying ${i} about autotest finished."
printf "result collection::\n${FILENAME}\n" | ${SENDMAIL} -s "autohandle" ${i} #
done # notify the CGAL world
fi #
if [ ! "${MAIL_ADDRESS}" = "must_be_set_in_.autocgalrc" ]; then
for i in ${MAIL_ADDRESS}; do
echo "Notifying ${i} about autotest finished."
printf "result collection::\n${FILENAME}\n" | ${SENDMAIL} -s "autohandle" ${i}
done
fi fi
} }
@ -702,6 +716,7 @@ run_test_on_host()
for PLATFORM in ${PLATFORMS}; do for PLATFORM in ${PLATFORMS}; do
run_test_on_host_and_platform "${HOST}" "${PLATFORM}" run_test_on_host_and_platform "${HOST}" "${PLATFORM}"
publish_results "${HOST}" "${PLATFORM}"
done done
} }
@ -717,6 +732,7 @@ run_test()
for HOST in ${BUILD_HOSTS}; do for HOST in ${BUILD_HOSTS}; do
run_test_on_host ${HOST} & run_test_on_host ${HOST} &
publish_results "${HOST}" "${PLATFORM}"
done done
} }