From: David S. <ds...@us...> - 2006-11-21 19:52:34
|
Update of /cvsroot/junit/junit/src/org/junit/tests In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv11520/src/org/junit/tests Modified Files: SuiteTest.java AssertionTest.java TimeoutTest.java Log Message: Fixed two bugs: RunWtih(Suite) should not require a default constructor Test(timeout) was taking twice as long as specified Index: SuiteTest.java =================================================================== RCS file: /cvsroot/junit/junit/src/org/junit/tests/SuiteTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- SuiteTest.java 21 Nov 2006 18:53:34 -0000 1.1 +++ SuiteTest.java 21 Nov 2006 19:52:30 -0000 1.2 @@ -1,6 +1,6 @@ package org.junit.tests; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.*; import java.util.List; @@ -128,6 +128,20 @@ assertEquals(2, result.getFailureCount()); } + @RunWith(Suite.class) + @SuiteClasses( {}) + public class WithoutDefaultConstructor { + public WithoutDefaultConstructor(int i) { + + } + } + + @Test + public void suiteShouldBeOKwithNonDefaultConstructor() throws Exception { + Result result= JUnitCore.runClasses(WithoutDefaultConstructor.class); + assertTrue(result.wasSuccessful()); + } + public static junit.framework.Test suite() { return new JUnit4TestAdapter(SuiteTest.class); } Index: AssertionTest.java =================================================================== RCS file: /cvsroot/junit/junit/src/org/junit/tests/AssertionTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- AssertionTest.java 21 Nov 2006 18:53:34 -0000 1.1 +++ AssertionTest.java 21 Nov 2006 19:52:30 -0000 1.2 @@ -297,6 +297,23 @@ assertEquals(a1, a2); } + @Test public void implicitTypecastEquality() { + byte b = 1; + short s = 1; + int i = 1; + long l = 1L; + float f = 1.0f; + double d = 1.0; + + assertEquals(b, s); + assertEquals(b, i); + assertEquals(b, l); + assertEquals(s, i); + assertEquals(s, l); + assertEquals(i, l); + assertEquals(f, d, 0); + } + static public junit.framework.Test suite() { return new JUnit4TestAdapter(AssertionTest.class); } Index: TimeoutTest.java =================================================================== RCS file: /cvsroot/junit/junit/src/org/junit/tests/TimeoutTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- TimeoutTest.java 21 Nov 2006 18:53:34 -0000 1.1 +++ TimeoutTest.java 21 Nov 2006 19:52:30 -0000 1.2 @@ -89,6 +89,32 @@ Throwable exception= result.getFailures().get(0).getException(); assertTrue(exception.getMessage().contains("test timed out after 100 milliseconds")); } + + static public class ImpatientLoopTest { + @Test(timeout= 1) public void failure() { + infiniteLoop(); + } + + private void infiniteLoop() { + for(;;); + } + } + + + @Test public void infiniteLoopRunsForApproximatelyLengthOfTimeout() throws Exception { + long longTime= runAndTime(InfiniteLoopTest.class); + long shortTime= runAndTime(ImpatientLoopTest.class); + long difference= longTime - shortTime; + assertTrue(String.format("Difference was %sms", difference), difference < 200); + } + + private long runAndTime(Class<?> clazz) { + JUnitCore core= new JUnitCore(); + long startTime= System.currentTimeMillis(); + core.run(clazz); + long totalTime = System.currentTimeMillis() - startTime; + return totalTime; + } @Ignore("We would like this behavior to work but it may not be possible") @Test public void stalledThreadAppearsInStackTrace() throws Exception { |