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 <[email protected]> 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 _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

