Skip to content

Commit e842124

Browse files
Iterating on tests
1 parent 59a71a6 commit e842124

File tree

26 files changed

+306
-160
lines changed

26 files changed

+306
-160
lines changed

sdk/cosmos/azure-cosmos-benchmark/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ Licensed under the MIT License.
214214
<name>surefire.testng.verbose</name>
215215
<value>2</value>
216216
</property>
217+
<property>
218+
<name>listener</name>
219+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
220+
</property>
217221
</properties>
218222
<skipTests>true</skipTests>
219223
</configuration>

sdk/cosmos/azure-cosmos-encryption/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ Licensed under the MIT License.
228228
<name>surefire.testng.verbose</name>
229229
<value>2</value>
230230
</property>
231+
<property>
232+
<name>listener</name>
233+
<value>com.azure.cosmos.encryption.CosmosNettyLeakDetectorFactory</value>
234+
</property>
231235
</properties>
232236
<skipTests>true</skipTests>
233237
</configuration>

sdk/cosmos/azure-cosmos-encryption/src/test/java/com/azure/cosmos/encryption/CosmosNettyLeakDetectorFactory.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.testng.IInvokedMethod;
1717
import org.testng.IInvokedMethodListener;
1818
import org.testng.ITestClass;
19+
import org.testng.ITestNGMethod;
1920
import org.testng.ITestResult;
2021

2122
import java.lang.management.BufferPoolMXBean;
@@ -70,7 +71,7 @@ public void onBeforeClass(ITestClass testClass) {
7071

7172
@Override
7273
public void onAfterClass(ITestClass testClass) {
73-
// Unfortunately can't use this in TestNG 7.51 because execution is not symmetric
74+
// Unfortunately can't use this consistently in TestNG 7.51 because execution is not symmetric
7475
// IClassListener.onBeforeClass
7576
// TestClassBase.@BeforeClass
7677
// TestClass.@BeforeClass
@@ -81,14 +82,32 @@ public void onAfterClass(ITestClass testClass) {
8182
// -Dtestng.listener.execution.symmetric=true allows, but this is only available
8283
// in TestNG 7.7.1 - which requires Java11
8384
// So, this class simulates this behavior by hooking into IInvokedMethodListener
85+
// If the test class itself does not have @afterClass we execute the logic here
86+
87+
ITestNGMethod[] afterClassMethods = testClass.getAfterClassMethods();
88+
boolean testClassHasAfterClassMethods = afterClassMethods != null && afterClassMethods.length > 0;
89+
if (!testClassHasAfterClassMethods) {
90+
try {
91+
this.onAfterClassCore(testClass);
92+
} catch (Throwable t) {
93+
// decide if you want to fail the suite or just log
94+
System.err.println("Symmetric afterClass failed for " + testClass.getRealClass().getCanonicalName());
95+
t.printStackTrace();
96+
}
97+
}
8498
}
8599

86100
@Override
87101
public void afterInvocation(IInvokedMethod method, ITestResult result) {
88-
if (method.isConfigurationMethod()
102+
ITestClass testClass = (ITestClass)result.getTestClass();
103+
ITestNGMethod[] afterClassMethods = testClass.getAfterClassMethods();
104+
boolean testClassHasAfterClassMethods = afterClassMethods != null && afterClassMethods.length > 0;
105+
106+
if (testClassHasAfterClassMethods
107+
&& method.isConfigurationMethod()
89108
&& method.getTestMethod().isAfterClassConfiguration()) {
90-
// <-- This point is guaranteed to be AFTER the class’s @AfterClass ran
91-
ITestClass testClass = (ITestClass)result.getTestClass();
109+
110+
// <-- This point is guaranteed to be AFTER the class’s @AfterClass ran if any existed
92111
try {
93112
this.onAfterClassCore(testClass);
94113
} catch (Throwable t) {

sdk/cosmos/azure-cosmos-encryption/src/test/java/com/azure/cosmos/encryption/TestSuiteBase.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -793,18 +793,6 @@ static protected void safeDeleteCollection(CosmosAsyncDatabase database, String
793793
}
794794
}
795795

796-
static protected void safeCloseAsync(CosmosAsyncClient client) {
797-
if (client != null) {
798-
new Thread(() -> {
799-
try {
800-
client.close();
801-
} catch (Exception e) {
802-
logger.error("failed to close client", e);
803-
}
804-
}).start();
805-
}
806-
}
807-
808796
static protected void safeClose(CosmosAsyncClient client) {
809797
if (client != null) {
810798
try {

sdk/cosmos/azure-cosmos-kafka-connect/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,10 @@ Licensed under the MIT License.
287287
<name>surefire.testng.verbose</name>
288288
<value>2</value>
289289
</property>
290+
<property>
291+
<name>listener</name>
292+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
293+
</property>
290294
</properties>
291295
<skipTests>true</skipTests>
292296
</configuration>

sdk/cosmos/azure-cosmos-spark-account-data-resolver-sample/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,16 @@
706706
<include>**/*Spec.*</include>
707707
</includes>
708708
<skipTests>true</skipTests>
709+
<properties>
710+
<property>
711+
<name>surefire.testng.verbose</name>
712+
<value>2</value>
713+
</property>
714+
<property>
715+
<name>listener</name>
716+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
717+
</property>
718+
</properties>
709719
</configuration>
710720
</plugin>
711721
<!-- To use the ScalaTest Maven plugin, SureFire needs to be disabled and ScalaTest enabled -->

sdk/cosmos/azure-cosmos-spark_3-3_2-12/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@
128128
<include>**/*Spec.*</include>
129129
</includes>
130130
<skipTests>true</skipTests>
131+
<properties>
132+
<property>
133+
<name>surefire.testng.verbose</name>
134+
<value>2</value>
135+
</property>
136+
<property>
137+
<name>listener</name>
138+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
139+
</property>
140+
</properties>
131141
</configuration>
132142
</plugin>
133143
<plugin>

sdk/cosmos/azure-cosmos-spark_3-4_2-12/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@
128128
<include>**/*Spec.*</include>
129129
</includes>
130130
<skipTests>true</skipTests>
131+
<properties>
132+
<property>
133+
<name>surefire.testng.verbose</name>
134+
<value>2</value>
135+
</property>
136+
<property>
137+
<name>listener</name>
138+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
139+
</property>
140+
</properties>
131141
</configuration>
132142
</plugin>
133143
<plugin>

sdk/cosmos/azure-cosmos-spark_3-5_2-12/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@
128128
<include>**/*Spec.*</include>
129129
</includes>
130130
<skipTests>true</skipTests>
131+
<properties>
132+
<property>
133+
<name>surefire.testng.verbose</name>
134+
<value>2</value>
135+
</property>
136+
<property>
137+
<name>listener</name>
138+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
139+
</property>
140+
</properties>
131141
</configuration>
132142
</plugin>
133143
<plugin>

sdk/cosmos/azure-cosmos-spark_3/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,16 @@
757757
<include>**/*Spec.*</include>
758758
</includes>
759759
<skipTests>true</skipTests>
760+
<properties>
761+
<property>
762+
<name>surefire.testng.verbose</name>
763+
<value>2</value>
764+
</property>
765+
<property>
766+
<name>listener</name>
767+
<value>com.azure.cosmos.CosmosNettyLeakDetectorFactory</value>
768+
</property>
769+
</properties>
760770
</configuration>
761771
</plugin>
762772
<!-- To use the ScalaTest Maven plugin, SureFire needs to be disabled and ScalaTest enabled -->

0 commit comments

Comments
 (0)