[testng] 34/160: Exit with status code 0 if all retries succeed
Eugene Zhukov
eugene-guest at moszumanska.debian.org
Tue Aug 18 10:22:19 UTC 2015
This is an automated email from the git hooks/post-receive script.
eugene-guest pushed a commit to annotated tag testng-6.9.5
in repository testng.
commit bb28a4ae0364e3c652f30a844606071cf0e86293
Author: Ryan Schmitt <rschmitt at pobox.com>
Date: Sat May 30 18:34:39 2015 -0700
Exit with status code 0 if all retries succeed
---
src/main/java/org/testng/TestNG.java | 4 ++-
.../java/test/retryAnalyzer/EventualSuccess.java | 17 ++++++++++++
src/test/java/test/retryAnalyzer/ExitCodeTest.java | 31 ++++++++++++++++++++++
.../java/test/retryAnalyzer/ImmediateSuccess.java | 9 +++++++
.../java/test/retryAnalyzer/PersistentFailure.java | 11 ++++++++
src/test/resources/testng.xml | 5 ++--
6 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/testng/TestNG.java b/src/main/java/org/testng/TestNG.java
index 9bf024c..35c92ec 100644
--- a/src/main/java/org/testng/TestNG.java
+++ b/src/main/java/org/testng/TestNG.java
@@ -1857,7 +1857,9 @@ public class TestNG {
@Override
public void onTestSkipped(ITestResult result) {
setHasRunTests();
- m_mainRunner.setStatus(HAS_SKIPPED);
+ if ((m_mainRunner.getStatus() & HAS_FAILURE) != 0) {
+ m_mainRunner.setStatus(HAS_SKIPPED);
+ }
}
@Override
diff --git a/src/test/java/test/retryAnalyzer/EventualSuccess.java b/src/test/java/test/retryAnalyzer/EventualSuccess.java
new file mode 100644
index 0000000..4652c60
--- /dev/null
+++ b/src/test/java/test/retryAnalyzer/EventualSuccess.java
@@ -0,0 +1,17 @@
+package test.retryAnalyzer;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+public class EventualSuccess {
+ private static final AtomicBoolean ranYet = new AtomicBoolean(false);
+
+ @Test(retryAnalyzer = MyRetry.class)
+ public void test() {
+ if (!ranYet.getAndSet(true)) {
+ Assert.fail();
+ }
+ }
+}
diff --git a/src/test/java/test/retryAnalyzer/ExitCodeTest.java b/src/test/java/test/retryAnalyzer/ExitCodeTest.java
new file mode 100644
index 0000000..4e67fde
--- /dev/null
+++ b/src/test/java/test/retryAnalyzer/ExitCodeTest.java
@@ -0,0 +1,31 @@
+package test.retryAnalyzer;
+
+import org.testng.TestNG;
+import org.testng.annotations.Test;
+import test.SimpleBaseTest;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+public class ExitCodeTest extends SimpleBaseTest {
+ @Test
+ public void exitsWithZeroOnSuccess() {
+ TestNG tng = create(ImmediateSuccess.class);
+ tng.run();
+ assertEquals(tng.getStatus(), 0);
+ }
+
+ @Test
+ public void exitsWithNonzeroOnFailure() {
+ TestNG tng = create(PersistentFailure.class);
+ tng.run();
+ assertTrue(tng.getStatus() != 0);
+ }
+
+ @Test
+ public void exitsWithZeroAfterSuccessfulRetry() {
+ TestNG tng = create(EventualSuccess.class);
+ tng.run();
+ assertEquals(tng.getStatus(), 0);
+ }
+}
diff --git a/src/test/java/test/retryAnalyzer/ImmediateSuccess.java b/src/test/java/test/retryAnalyzer/ImmediateSuccess.java
new file mode 100644
index 0000000..dea4ed3
--- /dev/null
+++ b/src/test/java/test/retryAnalyzer/ImmediateSuccess.java
@@ -0,0 +1,9 @@
+package test.retryAnalyzer;
+
+import org.testng.annotations.Test;
+
+public class ImmediateSuccess {
+ @Test(retryAnalyzer = MyRetry.class)
+ public void test() {
+ }
+}
diff --git a/src/test/java/test/retryAnalyzer/PersistentFailure.java b/src/test/java/test/retryAnalyzer/PersistentFailure.java
new file mode 100644
index 0000000..62e4fbb
--- /dev/null
+++ b/src/test/java/test/retryAnalyzer/PersistentFailure.java
@@ -0,0 +1,11 @@
+package test.retryAnalyzer;
+
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+public class PersistentFailure {
+ @Test(retryAnalyzer = MyRetry.class)
+ public void test() {
+ Assert.fail();
+ }
+}
diff --git a/src/test/resources/testng.xml b/src/test/resources/testng.xml
index dffeb76..aa276f3 100644
--- a/src/test/resources/testng.xml
+++ b/src/test/resources/testng.xml
@@ -619,13 +619,12 @@
</classes>
</test>
-<!--
<test name="RetryAnalyzer">
<classes>
- <class name="test.retryAnalyzer.RetryAnalyzerTest" />
+ <!-- <class name="test.retryAnalyzer.RetryAnalyzerTest" /> -->
+ <class name="test.retryAnalyzer.ExitCodeTest" />
</classes>
</test>
--->
<test name="MethodInterceptor">
<classes>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git
More information about the pkg-java-commits
mailing list