Fix sporadic test failure (#386)

This commit is contained in:
Trask Stalnaker 2020-05-11 20:53:49 -07:00 committed by GitHub
parent 3a4483a0f5
commit 55211ccd73
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 1 deletions

View File

@ -40,6 +40,10 @@ import static context.ContextTestInstrumentation.UntransformableKeyClass
class FieldBackedProviderTest extends AgentTestRunner {
static {
System.setProperty("ota.integration.context-test-instrumentation.enabled", "true")
}
@Override
boolean onInstrumentationError(
final String typeName,
@ -206,6 +210,22 @@ class FieldBackedProviderTest extends AgentTestRunner {
*/
@Requires({ "false" == System.getProperty("ota.trace.runtime.context.field.injection") })
class FieldBackedProviderFieldInjectionDisabledTest extends AgentTestRunner {
static {
System.setProperty("ota.integration.context-test-instrumentation.enabled", "true")
}
@Override
boolean onInstrumentationError(
final String typeName,
final ClassLoader classLoader,
final JavaModule module,
final boolean loaded,
final Throwable throwable) {
// Incorrect* classes assert on incorrect api usage. Error expected.
return !(typeName.startsWith(ContextTestInstrumentation.getName() + '$Incorrect') && throwable.getMessage().startsWith("Incorrect Context Api Usage detected."))
}
def "Check that structure is not modified when structure modification is disabled"() {
setup:
def keyClass = ContextTestInstrumentation.DisabledKeyClass

View File

@ -32,7 +32,15 @@ import net.bytebuddy.matcher.ElementMatcher;
@AutoService(Instrumenter.class)
public class ContextTestInstrumentation extends Instrumenter.Default {
public ContextTestInstrumentation() {
super("context-test-isntrumenter1");
super("context-test-instrumentation");
}
@Override
protected boolean defaultEnabled() {
// this instrumentation is disabled by default, so that it doesn't cause sporadic failures
// in other tests that do override AgentTestRunner.onInstrumentationError() to filter out
// the instrumentation errors that this instrumentation purposefully introduces
return false;
}
@Override

View File

@ -62,3 +62,5 @@ tasks.register("testDisabledFieldInjection", Test) {
include "context/FieldBackedProviderFieldInjectionDisabledTest.class"
}
test.dependsOn(testDisabledFieldInjection)
test.forkEvery = 1