Skip to content

Commit 1b0949b

Browse files
committed
Fixing review comments
1 parent 2466655 commit 1b0949b

File tree

6 files changed

+36
-17
lines changed

6 files changed

+36
-17
lines changed

testng-core/src/main/java/org/testng/internal/invokers/TestInvoker.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,10 +1036,8 @@ public int invoke(int invCount) {
10361036
// See GITHUB-3238.
10371037
if (!isInvokingListeners.get()) {
10381038
runTestResultListener(r);
1039-
} else {
1040-
// Reset the flag since we're handling the listener exception here
1041-
isInvokingListeners.set(false);
10421039
}
1040+
isInvokingListeners.set(false);
10431041
m_notifier.addFailedTest(arguments.getTestMethod(), r);
10441042
} // catch
10451043
return invocationCount.get();

testng-core/src/main/java/org/testng/internal/thread/graph/GraphOrchestrator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Comparator;
44
import java.util.List;
55
import java.util.Map;
6+
import java.util.Optional;
67
import java.util.concurrent.*;
78
import org.testng.IDynamicGraph;
89
import org.testng.collections.Maps;
@@ -73,7 +74,8 @@ private void mapNodeToParent(List<T> freeNodes) {
7374
}
7475
}
7576

76-
private void afterExecute(IWorker<T> r, Throwable t) {
77+
private void afterExecute(IWorker<T> original, IWorker<T> result) {
78+
IWorker<T> r = Optional.ofNullable(result).orElse(original);
7779
try (AutoCloseableLock ignore = internalLock.lock()) {
7880
setStatus(r, computeStatus(r));
7981
if (graph.getNodeCount() == graph.getNodeCountWithStatus(IDynamicGraph.Status.FINISHED)) {

testng-core/src/main/java/org/testng/internal/thread/graph/TestNGFutureTask.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
public class TestNGFutureTask<T> extends FutureTask<IWorker<T>> implements IWorker<T> {
1010

1111
private final IWorker<T> worker;
12-
private final BiConsumer<IWorker<T>, Throwable> callback;
12+
private final BiConsumer<IWorker<T>, IWorker<T>> callback;
1313

14-
public TestNGFutureTask(IWorker<T> worker, BiConsumer<IWorker<T>, Throwable> callback) {
14+
public TestNGFutureTask(IWorker<T> worker, BiConsumer<IWorker<T>, IWorker<T>> callback) {
1515
super(worker, worker);
1616
this.callback = callback;
1717
this.worker = worker;
@@ -24,14 +24,13 @@ public void run() {
2424

2525
@Override
2626
protected void done() {
27-
Throwable throwable = null;
2827
IWorker<T> result = null;
2928
try {
3029
result = super.get();
3130
} catch (InterruptedException | ExecutionException e) {
32-
throwable = e;
31+
// Gobble exception and do nothing.
3332
}
34-
callback.accept(result == null ? worker : result, throwable);
33+
callback.accept(worker, result);
3534
}
3635

3736
@Override

testng-core/src/test/java/test/listeners/ListenersTest.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -691,12 +691,16 @@ public void ensureInheritanceIsHandledWhenDealingWithListeners() {
691691
assertThat(testng.getStatus()).isZero();
692692
}
693693

694-
@Test(description = "GITHUB-3238")
695-
public void ensureListenerFailureDoesNotBreakTestNG() {
696-
TestNG testng =
697-
create(
698-
TestClassWithFailingTestMethodSample.class, TestClassWithPassingTestMethodSample.class);
699-
testng.setParallel(ParallelMode.CLASSES);
694+
@Test(description = "GITHUB-3238", dataProvider = "dp-3238")
695+
public void ensureListenerFailureDoesNotBreakTestNG(ParallelMode parallelMode) {
696+
XmlSuite xmlSuite =
697+
createXmlSuite(
698+
"3238_suite",
699+
"3238_test",
700+
TestClassWithFailingTestMethodSample.class,
701+
TestClassWithPassingTestMethodSample.class);
702+
xmlSuite.setParallel(parallelMode);
703+
TestNG testng = create(xmlSuite);
700704
AtomicInteger failingCount = new AtomicInteger(0);
701705
AtomicInteger passingCount = new AtomicInteger(0);
702706
testng.addListener(
@@ -713,7 +717,12 @@ public void onTestSuccess(ITestResult result) {
713717
});
714718
testng.run();
715719
assertThat(failingCount.get()).isEqualTo(1);
716-
assertThat(passingCount.get()).isEqualTo(1);
720+
assertThat(passingCount.get()).isEqualTo(5);
721+
}
722+
723+
@DataProvider(name = "dp-3238")
724+
public Object[][] getTestData() {
725+
return new Object[][] {{ParallelMode.CLASSES}, {ParallelMode.METHODS}};
717726
}
718727

719728
private void setupTest(boolean addExplicitListener) {

testng-core/src/test/java/test/listeners/issue3238/TestClassWithFailingTestMethodSample.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ public class TestClassWithFailingTestMethodSample {
99

1010
@Test
1111
public void failingTest() {
12-
System.err.println(":::::");
1312
Assert.fail();
1413
}
1514
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
package test.listeners.issue3238;
22

3+
import org.testng.annotations.DataProvider;
34
import org.testng.annotations.Test;
45

56
public class TestClassWithPassingTestMethodSample {
67
@Test
78
public void testMethod() {}
9+
10+
@Test
11+
public void anotherTestMethod() {}
12+
13+
@Test(dataProvider = "dp")
14+
public void dataDrivenTest(int ignored) {}
15+
16+
@DataProvider(name = "dp", parallel = true)
17+
public Object[][] dp() {
18+
return new Object[][] {{1}, {2}, {3}};
19+
}
820
}

0 commit comments

Comments
 (0)