mirror of https://github.com/apache/kafka.git
MINOR Ensure quarantinedTest always copies test reports (#18068)
The quarantinedTest task will fail (exit 1) if a test was too flaky. Our two Gradle test tasks are run with set +e so we can capture the exit code after the process exits. Prior to this patch, quarantinedTest was not configured with the Gradle ignoreFailures property which meant that it would exit upon failure. This prevented the test XML files from being copied to the "build-xml" directory for later processing. This patch adds ignoreFailures to quarantinedTest when running on CI. Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
This commit is contained in:
parent
0ff55c316a
commit
82fd763705
15
build.gradle
15
build.gradle
|
@ -546,6 +546,7 @@ subprojects {
|
|||
task quarantinedTest(type: Test, dependsOn: compileJava) {
|
||||
ext {
|
||||
isGithubActions = System.getenv('GITHUB_ACTIONS') != null
|
||||
hadFailure = false // Used to track if any tests failed, see afterSuite below
|
||||
}
|
||||
|
||||
// Disable caching and up-to-date for this task. We always want quarantined tests
|
||||
|
@ -555,7 +556,7 @@ subprojects {
|
|||
outputs.cacheIf { false }
|
||||
|
||||
maxParallelForks = maxTestForks
|
||||
ignoreFailures = userIgnoreFailures
|
||||
ignoreFailures = userIgnoreFailures || ext.isGithubActions
|
||||
|
||||
maxHeapSize = defaultMaxHeapSize
|
||||
jvmArgs = defaultJvmArgs
|
||||
|
@ -584,6 +585,13 @@ subprojects {
|
|||
}
|
||||
}
|
||||
|
||||
// As we process results, check if there were any test failures.
|
||||
afterSuite { desc, result ->
|
||||
if (result.resultType == TestResult.ResultType.FAILURE) {
|
||||
ext.hadFailure = true
|
||||
}
|
||||
}
|
||||
|
||||
// This closure will copy JUnit XML files out of the sub-project's build directory and into
|
||||
// a top-level build/junit-xml directory. This is necessary to avoid reporting on tests which
|
||||
// were not run, but instead were restored via FROM-CACHE. See KAFKA-17479 for more details.
|
||||
|
@ -597,6 +605,11 @@ subprojects {
|
|||
ant.include(name: "**/*.xml")
|
||||
}
|
||||
}
|
||||
// If there were any test failures, we want to fail the task to prevent the failures
|
||||
// from being cached.
|
||||
if (ext.hadFailure) {
|
||||
throw new GradleException("Failing this task since '${project.name}:${name}' had test failures.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue