[prev in list] [next in list] [prev in thread] [next in thread]
List: htmlunit-develop
Subject: [HtmlUnit] SF.net SVN: htmlunit:[5633]
From: asashour () users ! sourceforge ! net
Date: 2010-03-29 14:40:32
Message-ID: E1NwG8m-0001ra-6m () sfp-svn-1 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]
Revision: 5633
http://htmlunit.svn.sourceforge.net/htmlunit/?rev=5633&view=rev
Author: asashour
Date: 2010-03-29 14:40:31 +0000 (Mon, 29 Mar 2010)
Log Message:
-----------
Add @Tries counter to some frequently failing test methods.
Modified Paths:
--------------
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserNoneClassRunner.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserStatement.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebClientWaitForBackgroundJobsTest.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/Dojo102Test.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery126LocalTest.java
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserNoneClassRunner.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserNoneClassRunner.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserNoneClassRunner.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -70,7 +70,7 @@
final NotYetImplemented notYetImplementedBrowsers = \
method.getAnnotation(NotYetImplemented.class);
final boolean notYetImplemented = notYetImplementedBrowsers != null;
statement = new BrowserStatement(statement, method.getMethod(), false,
- notYetImplemented, "");
+ notYetImplemented, 1, "");
return statement;
}
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserRunner.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -227,4 +227,18 @@
};
}
+ /**
+ * The number of tries that test will be executed.
+ * The test will fail if and only if all trials failed.
+ */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target(ElementType.METHOD)
+ public static @interface Tries {
+
+ /**
+ * The browsers which the case succeeds (but fails with remaining ones).
+ */
+ int value() default 1;
+ }
+
}
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserStatement.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserStatement.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserStatement.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -31,18 +31,38 @@
private final boolean notYetImplemented_;
private final Method method_;
private final String browserVersionString_;
+ private final int tries_;
BrowserStatement(final Statement next, final Method method, final boolean \
shouldFail,
- final boolean notYetImplemented, final String browserVersionString) {
+ final boolean notYetImplemented, final int tries, final String \
browserVersionString) { next_ = next;
method_ = method;
shouldFail_ = shouldFail;
notYetImplemented_ = notYetImplemented;
+ tries_ = tries;
browserVersionString_ = browserVersionString;
}
@Override
public void evaluate() throws Throwable {
+ for (int i = 0; i < tries_; i++) {
+ try {
+ evaluateSolo();
+ break;
+ }
+ catch (final Throwable t) {
+ if (shouldFail_ || notYetImplemented_) {
+ throw t;
+ }
+ System.out.println("Failed test "
+ + method_.getDeclaringClass().getName() + '.' + \
method_.getName() + " #" + (i + 1)); + if (i == tries_ - 1) {
+ throw t;
+ }
+ }
+ }
+ }
+ public void evaluateSolo() throws Throwable {
Exception toBeThrown = null;
try {
next_.evaluate();
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionClassRunner.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -38,6 +38,7 @@
import com.gargoylesoftware.htmlunit.BrowserRunner.Browser;
import com.gargoylesoftware.htmlunit.BrowserRunner.Browsers;
import com.gargoylesoftware.htmlunit.BrowserRunner.NotYetImplemented;
+import com.gargoylesoftware.htmlunit.BrowserRunner.Tries;
/**
* The runner for test methods that run with a specific browser ({@link \
BrowserRunner.Browser}) @@ -305,9 +306,10 @@
else {
notYetImplemented = isNotYetImplemented(method);
}
+ final int tries = method.getAnnotation(Tries.class).value();
setAlerts(testCase, method.getMethod());
statement = new BrowserStatement(statement, method.getMethod(), shouldFail,
- notYetImplemented, browserVersion_.getNickname());
+ notYetImplemented, tries, browserVersion_.getNickname());
return statement;
}
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebClientWaitForBackgroundJobsTest.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebClientWaitForBackgroundJobsTest.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/WebClientWaitForBackgroundJobsTest.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -26,6 +26,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import com.gargoylesoftware.htmlunit.BrowserRunner.Tries;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManager;
@@ -502,6 +503,7 @@
* @throws Exception if the test fails
*/
@Test
+ @Tries(3)
public void waitForBackgroundJavaScriptStartingBefore_hangs() throws Exception {
final String html = "<html>\n"
+ "<head>\n"
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/Dojo102Test.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/Dojo102Test.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/Dojo102Test.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -22,6 +22,7 @@
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebServerTestCase;
+import com.gargoylesoftware.htmlunit.BrowserRunner.Tries;
import com.gargoylesoftware.htmlunit.html.DomNode;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
@@ -54,6 +55,7 @@
* @throws Exception if an error occurs
*/
@Test
+ @Tries(3)
public void dojo() throws Exception {
client_ = new WebClient(BrowserVersion.FIREFOX_3);
final String url = "http://localhost:" + PORT + "/util/doh/runner.html";
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery126LocalTest.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery126LocalTest.java 2010-03-29 \
11:42:11 UTC (rev 5632)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery126LocalTest.java 2010-03-29 \
14:40:31 UTC (rev 5633) @@ -22,6 +22,7 @@
import com.gargoylesoftware.htmlunit.BrowserRunner;
import com.gargoylesoftware.htmlunit.BrowserRunner.Browser;
import com.gargoylesoftware.htmlunit.BrowserRunner.NotYetImplemented;
+import com.gargoylesoftware.htmlunit.BrowserRunner.Tries;
/**
* Tests for compatibility with local loading of
@@ -60,6 +61,7 @@
*/
@Test
@NotYetImplemented(Browser.IE8)
+ @Tries(3)
public void test() throws Exception {
runTest();
}
This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
HtmlUnit-develop mailing list
HtmlUnit-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/htmlunit-develop
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic