[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