You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by an...@apache.org on 2018/09/25 12:25:41 UTC
oozie git commit: OOZIE-3343 [build] [tests] Add the first five test
errors per module to the report (kmarton via andras.piros)
Repository: oozie
Updated Branches:
refs/heads/master 57c2a2f55 -> c93f94835
OOZIE-3343 [build] [tests] Add the first five test errors per module to the report (kmarton via andras.piros)
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/c93f9483
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/c93f9483
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/c93f9483
Branch: refs/heads/master
Commit: c93f94835695015578299d1f8df3601dbeafbd90
Parents: 57c2a2f
Author: Andras Piros <an...@cloudera.com>
Authored: Tue Sep 25 14:24:14 2018 +0200
Committer: Andras Piros <an...@cloudera.com>
Committed: Tue Sep 25 14:24:14 2018 +0200
----------------------------------------------------------------------
bin/test-patch-20-tests | 81 +++++++++++++++++++++++++++++---------------
release-log.txt | 1 +
2 files changed, 54 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oozie/blob/c93f9483/bin/test-patch-20-tests
----------------------------------------------------------------------
diff --git a/bin/test-patch-20-tests b/bin/test-patch-20-tests
index 11dc827..02493bd 100755
--- a/bin/test-patch-20-tests
+++ b/bin/test-patch-20-tests
@@ -25,6 +25,8 @@ SUMMARYFILEFULL=""
STDOUT="/dev/null"
MVNPASSTHRU=""
FLAKY_LIMIT=10
+TIMEOUT_MSG="There was a timeout or other error in the fork"
+TEST_FAILURE_PER_PROJECT=5
###############################################################################
cleanupAndExit() {
@@ -50,6 +52,7 @@ parseArgs() {
--tempdir=*)
TEMPDIR=${i#*=}
TESTS_OUT="${TEMPDIR}/${TASKNAME}.out"
+ TEST_RESULTS_DIR="${TEMPDIR}/${TASKNAME}/results"
;;
--reportdir=*)
REPORTDIR=${i#*=}
@@ -87,7 +90,8 @@ parseArgs() {
count_test_result_type() {
local type=$1
- find . -name "TEST-*.xml" -exec sh -c 'xmllint --xpath "string(//testsuite/@'"${type}"')" $1; echo' _ {} \; \
+ local path=$2
+ find "${path}" -name "TEST-*.xml" -exec sh -c 'xmllint --xpath "string(//testsuite/@'"${type}"')" $1; echo' _ {} \; \
| awk 'BEGIN {count=0} {count=count+$1} END {print count}';
}
@@ -126,6 +130,14 @@ run_tests() {
echo "$exitCode" > "${TEMPDIR}/${TASKNAME}.exitCode"
}
+save_failures() {
+ if [ ! -d "$TEST_RESULTS_DIR" ]; then
+ mkdir -p "${TEST_RESULTS_DIR}"
+ fi
+
+ rsync -qR "$(find . -name 'TEST*.xml' ! -path '*/test-patch/*' -print0 | xargs -0 grep -El '<error|<failure')" "${TEST_RESULTS_DIR}"
+}
+
print_flakies() {
if [ -f "${TEMPDIR}/${TASKNAME}.flakies.out" ]; then
echo ". {color:orange}Tests failed at first run:{color}"
@@ -147,40 +159,52 @@ print_flakies_full() {
print_flakies
}
+printTestFailures() {
+ failurePattern=$1
+ failureType=$2
+
+ for path in "${TEST_RESULTS_DIR}"/* ; do
+ [ -d "${path}" ] || continue # if not a directory, skip
+ module="$(basename "${path}")"
+ totalFailedTestsInModule=$(count_test_result_type "$failureType" "$path")
+ if [[ ${totalFailedTestsInModule} != 0 ]] ; then
+ echo "{color:red}-1{color} [ERROR] There are [${totalFailedTestsInModule}] test ${failureType} in [${module}]. Listing only the first [${TEST_FAILURE_PER_PROJECT}] ones"
+ failures=$(find "${path}" -name 'TEST*.xml' -print0 | xargs grep -hB1 "${failurePattern}" | grep -Evm"${TEST_FAILURE_PER_PROJECT}" "${failurePattern}|--" | cut -d \" -f4,2 | sed 's/"/:/g' )
+ echo "${failures}"
+ fi
+ done
+}
+
generate_report() {
- failedTests=$(find . -name '*\.txt' | grep target/surefire-reports | xargs grep "<<< FAILURE" | grep -v "Tests run:" | sed 's/.*\.txt\://' | sed 's/ .*//')
- testsWithError=$(find . -name '*\.txt' | grep target/surefire-reports | xargs grep "<<< ERROR" | grep -v "Tests run:" | sed 's/.*\.txt\://' | sed 's/ .*//')
testsRun=$(grep "Tests run:" "${TESTS_OUT}" | grep -v " Time elapsed:" | awk '{print $4}' | sed 's/,//' | awk 'BEGIN {count=0} {count=count+$1} END {print count}')
- testsFailed=$(count_test_result_type failures)
- testsErrors=$(count_test_result_type errors)
- hasFailures=$((testsFailed + testsErrors))
+ testsFailed=$(count_test_result_type failures "${TEST_RESULTS_DIR}")
+ testsErrors=$(count_test_result_type errors "${TEST_RESULTS_DIR}")
+ timeout=$(grep -c "${TIMEOUT_MSG}" "${TESTS_OUT}")
+ hasFailures=$((testsFailed + testsErrors + timeout))
testsExitCode=$(cat "${TEMPDIR}/${TASKNAME}.exitCode")
- errors=$(grep -c '\[ERROR\]' "${TESTS_OUT}")
- if [[ ${errors} -gt 0 && ${testsErrors} -eq 0 ]] ; then
+ if [[ ${hasFailures} != 0 ]] ; then
echo "{color:red}-1 ${TASKNAME}{color}"
- echo "There were errors during execution. Check console output for details."
- else
- if [[ ${hasFailures} != 0 ]] ; then
- echo "{color:red}-1 ${TASKNAME}{color}"
- echo ". Tests run: $testsRun"
- echo ". Tests failed: $testsFailed"
- echo ". Tests errors: $testsErrors"
- echo ""
- echo ". The patch failed the following testcases:"
+ echo ". Tests run : $testsRun"
+ echo ". Tests failed : $testsFailed"
+ echo ". Tests in error : $testsErrors"
+ echo ". Tests timed out : $timeout"
+ echo ""
+ if [[ ${testsFailed} != 0 ]] ; then
+ printTestFailures "<failure" failures
echo ""
- echo "${failedTests//#/. /}"
- echo ""
- echo ". Tests failing with errors:"
- echo "${testsWithError//#/. /}"
+ fi
+ if [[ ${testsErrors} != 0 ]] ; then
+ printTestFailures "<error" errors
echo ""
+ fi
+ echo "Check console output for the full list of errors/failures"
+ else
+ if [[ "${testsExitCode}" != "0" ]] ; then
+ echo "{color:red}-1 ${TASKNAME}{color} - patch does not compile, cannot run test cases"
else
- if [[ "${testsExitCode}" != "0" ]] ; then
- echo "{color:red}-1 ${TASKNAME}{color} - patch does not compile, cannot run testcases"
- else
- echo "{color:green}+1 ${TASKNAME}{color}"
- echo ". Tests run: $testsRun"
- fi
+ echo "{color:green}+1 ${TASKNAME}{color}"
+ echo ". Tests run: $testsRun"
fi
fi
}
@@ -193,9 +217,10 @@ case $OP in
;;
post)
run_tests
+ save_failures
;;
report)
- generate_report >> "${SUMMARYFILE}"
+ generate_report >> "${SUMMARYFILE}"
print_flakies_short >> "${SUMMARYFILE}"
print_flakies_full >> "${SUMMARYFILEFULL}"
;;
http://git-wip-us.apache.org/repos/asf/oozie/blob/c93f9483/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 0a97e34..89d1e0d 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 5.1.0 release (trunk - unreleased)
+OOZIE-3343 [build] [tests] Add the first five test errors per module to the report (kmarton via andras.piros)
OOZIE-3307 [core] Limit heap usage of LauncherAM (andras.piros)
OOZIE-3352 [tests] TestCallableQueueService#testPriorityExecutionOrder() is flaky (pbacsko)
OOZIE-3351 [tests] Flaky test TestMemoryLocks#testWriteLockSameThreadNoWait() (pbacsko)