You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A few changes to improve debuggability:
1) We now print the stack trace that created an orphan thread, in addition to the current stack trace.
2) we add the ability for a connector to tell the integration runner to not care about certain threads (by adding a thread filter)
3) We change the log of connector containers to include the name of the test that created it (usually each test will create and close a container)
4) We also log when the timeout timer gets triggered, to try to understand why some tests are still taking way more time than their timeout should allow
Another change that was initially in there but has been removed and might be worth thinking about:
Today, only Write checks for live threads on shutdown. We might want to do that for other operations as well
Copy file name to clipboardExpand all lines: airbyte-cdk/java/airbyte-cdk/core/src/test/kotlin/io/airbyte/cdk/integrations/base/IntegrationRunnerTest.kt
Copy file name to clipboardExpand all lines: airbyte-cdk/java/airbyte-cdk/core/src/testFixtures/kotlin/io/airbyte/cdk/extensions/LoggingInvocationInterceptor.kt
+31-19
Original file line number
Diff line number
Diff line change
@@ -46,18 +46,18 @@ class LoggingInvocationInterceptor : InvocationInterceptor {
46
46
ExtensionContext::class.java
47
47
) ==null
48
48
) {
49
-
LOGGER!!.error(
49
+
LOGGER.error(
50
50
"Junit LoggingInvocationInterceptor executing unknown interception point {}",
51
51
method.name
52
52
)
53
-
return method.invoke(proxy, *(args!!))
53
+
return method.invoke(proxy, *(args))
54
54
}
55
-
val invocation = args!![0] asInvocationInterceptor.Invocation<*>?
56
-
val invocationContext = args[1] asReflectiveInvocationContext<*>?
55
+
val invocation = args[0] asInvocationInterceptor.Invocation<*>?
56
+
val invocationContext = args[1] asReflectiveInvocationContext<*>
57
57
val extensionContext = args[2] asExtensionContext?
58
58
val methodName = method.name
59
-
val logLineSuffix:String?
60
-
val methodMatcher = methodPattern!!.matcher(methodName)
59
+
val logLineSuffix:String
60
+
val methodMatcher = methodPattern.matcher(methodName)
61
61
if (methodName =="interceptDynamicTest") {
62
62
logLineSuffix =
63
63
"execution of DynamicTest %s".formatted(extensionContext!!.displayName)
@@ -66,12 +66,19 @@ class LoggingInvocationInterceptor : InvocationInterceptor {
66
66
"instance creation for %s".formatted(invocationContext!!.targetClass)
67
67
} elseif (methodMatcher.matches()) {
68
68
val interceptedEvent = methodMatcher.group(1)
69
+
val methodRealClassName = invocationContext!!.executable!!.declaringClass.simpleName
70
+
val methodName = invocationContext.executable!!.name
71
+
val targetClassName = invocationContext!!.targetClass.simpleName
72
+
val methodDisplayName =
73
+
if (targetClassName == methodRealClassName) methodName
Copy file name to clipboardExpand all lines: airbyte-cdk/java/airbyte-cdk/db-destinations/src/testFixtures/kotlin/io/airbyte/cdk/integrations/standardtest/destination/DestinationAcceptanceTest.kt
+15-13
Original file line number
Diff line number
Diff line change
@@ -1469,7 +1469,7 @@ abstract class DestinationAcceptanceTest {
1469
1469
}
1470
1470
1471
1471
/** Whether the destination should be tested against different namespaces. */
1472
-
protectedopenfunsupportNamespaceTest(): Boolean {
1472
+
openprotectedfunsupportNamespaceTest(): Boolean {
1473
1473
returnfalse
1474
1474
}
1475
1475
@@ -1571,19 +1571,21 @@ abstract class DestinationAcceptanceTest {
0 commit comments