diff options
Diffstat (limited to 'junit4/src/test/java/org/junit/tests/experimental/rules/TimeoutRuleTest.java')
-rw-r--r-- | junit4/src/test/java/org/junit/tests/experimental/rules/TimeoutRuleTest.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/junit4/src/test/java/org/junit/tests/experimental/rules/TimeoutRuleTest.java b/junit4/src/test/java/org/junit/tests/experimental/rules/TimeoutRuleTest.java new file mode 100644 index 0000000..28d3553 --- /dev/null +++ b/junit4/src/test/java/org/junit/tests/experimental/rules/TimeoutRuleTest.java @@ -0,0 +1,39 @@ +package org.junit.tests.experimental.rules; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; +import static org.junit.matchers.JUnitMatchers.containsString; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestRule; +import org.junit.rules.Timeout; +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; + +public class TimeoutRuleTest { + public static class HasGlobalTimeout { + public static String log; + + @Rule public TestRule globalTimeout = new Timeout(20); + + @Test public void testInfiniteLoop1() { + log+= "ran1"; + for(;;) {} + } + + @Test public void testInfiniteLoop2() { + log+= "ran2"; + for(;;) {} + } + } + + @Ignore("For gump, for now") + @Test(timeout=100) public void globalTimeoutAvoidsInfiniteLoop() { + HasGlobalTimeout.log = ""; + Result result= JUnitCore.runClasses(HasGlobalTimeout.class); + assertEquals(2, result.getFailureCount()); + assertThat(HasGlobalTimeout.log, containsString("ran1")); + assertThat(HasGlobalTimeout.log, containsString("ran2")); + } +} |