incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bdelacre...@apache.org
Subject svn commit: r1542223 - in /sling/trunk: bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/HttpTestBase.java launchpad/testing/pom.xml
Date Fri, 15 Nov 2013 10:53:26 GMT
Author: bdelacretaz
Date: Fri Nov 15 10:53:26 2013
New Revision: 1542223

URL: http://svn.apache.org/r1542223
Log:
SLING-3235 - additional readyness checks to cope with async config install at startup

Modified:
    sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/HttpTestBase.java
    sling/trunk/launchpad/testing/pom.xml

Modified: sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/HttpTestBase.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/HttpTestBase.java?rev=1542223&r1=1542222&r2=1542223&view=diff
==============================================================================
--- sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/HttpTestBase.java
(original)
+++ sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/HttpTestBase.java
Fri Nov 15 10:53:26 2013
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Pattern;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -57,6 +58,9 @@ public class HttpTestBase extends TestCa
     public static final String HTTP_BASE_URL = removePath(HTTP_URL);
     public static final String WEBDAV_BASE_URL = removeEndingSlash(System.getProperty("launchpad.webdav.server.url",
HTTP_BASE_URL));
     public static final String SERVLET_CONTEXT = removeEndingSlash(System.getProperty("launchpad.servlet.context",
getPath(HTTP_URL)));
+    
+    public static final String READY_URL_PROP_PREFIX = "launchpad.ready.";
+    public static final int MAX_READY_URL_INDEX = 50;
 
     /** base path for test files */
     public static final String TEST_PATH = "/launchpad-integration-tests";
@@ -313,7 +317,31 @@ public class HttpTestBase extends TestCa
                 throw new IOException("Allow header (" + h.getValue() + " does not contain
PROPFIND, at URL=" + webDavUrl);
             }
         }
-
+        
+        // And check optional additional URLs for readyness
+        // Defined by system properties like
+        //  launchpad.ready.1 = GET:/tmp/someUrl:200:expectedRegexpInResponse
+        {
+            for(int i=0; i <= MAX_READY_URL_INDEX ; i++) {
+                final String propName = READY_URL_PROP_PREFIX + i;
+                final String readyDef = System.getProperty(propName, "");
+                final String [] parts = readyDef.split(":");
+                if(parts.length == 4) {
+                    final String info = propName + "=" + readyDef;
+                    final HttpAnyMethod m = new HttpAnyMethod(parts[0],HTTP_BASE_URL + parts[1]);
+                    final int expectedStatus = Integer.valueOf(parts[2]);
+                    final int status = httpClient.executeMethod(m);
+                    if(expectedStatus != status) {
+                        throw new IOException("Status " + status + " does not match expected
value: " + info); 
+                    }
+                    final String content = m.getResponseBodyAsString();
+                    final Pattern p = Pattern.compile("(?s).*" + parts[3] + ".*");
+                    if(!p.matcher(content).matches()) {
+                        throw new IOException("Content does not match expected regexp:" +
info  + ", content=" + content);
+                    }
+                }
+            }
+        }
 
         return true;
     }
@@ -518,4 +546,4 @@ public class HttpTestBase extends TestCa
         }
         return content.toString();
     }
-}
+}
\ No newline at end of file

Modified: sling/trunk/launchpad/testing/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/pom.xml?rev=1542223&r1=1542222&r2=1542223&view=diff
==============================================================================
--- sling/trunk/launchpad/testing/pom.xml (original)
+++ sling/trunk/launchpad/testing/pom.xml Fri Nov 15 10:53:26 2013
@@ -242,6 +242,10 @@
                                 <launchpad.http.server.url>http://${test.host}:${http.port}/</launchpad.http.server.url>
                                 <launchpad.webdav.server.url>http://${test.host}:${http.port}/${webdav.workspace.path}</launchpad.webdav.server.url>
                                 <HttpTestBase.readyTimeoutSeconds>${HttpTestBase.readyTimeoutSeconds}</HttpTestBase.readyTimeoutSeconds>
+                                
+                                <!-- Additional readyness checks, SLING-3235 -->
+                                <launchpad.ready.1>GET:/system/console/status-Configurations/configuration-status-20131115-101714.txt:200:config.comment.*setup
the JSP engine for running tests</launchpad.ready.1>
+                                <launchpad.ready.2>GET:/.EXPORTED_PACKAGES.txt?package=org.apache.sling.api:200:PACKAGE
FOUND.*org.apache.sling.api</launchpad.ready.2>
                             </systemPropertyVariables>
                         </configuration>
                     </plugin>



Mime
View raw message