You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ie...@apache.org on 2010/06/02 22:06:28 UTC

svn commit: r950744 [3/3] - in /sling/trunk: ./ launchpad/integration-tests/ launchpad/integration-tests/src/ launchpad/integration-tests/src/main/ launchpad/integration-tests/src/main/java/ launchpad/integration-tests/src/main/java/org/ launchpad/inte...

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test-3.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test-3.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test-3.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test-3.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test-3.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.ecma (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test.ecma)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.ecma?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.ecma&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test.ecma&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.jsp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test.jsp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.jsp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/rendering-test.jsp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/rendering-test.jsp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel1.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test-sel1.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel1.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel1.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test-sel1.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel2.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test-sel2.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel2.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel2.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test-sel2.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel3.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test-sel3.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel3.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test-sel3.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test-sel3.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/request-attribute-test.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/request-attribute-test.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/jsp-engine-setup.jsp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/serverscripts/jsp-engine-setup.jsp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/jsp-engine-setup.jsp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/jsp-engine-setup.jsp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/serverscripts/jsp-engine-setup.jsp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/servertest.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/serverscripts/servertest.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/servertest.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/servertest.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/serverscripts/servertest.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/servertest.jsp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/serverscripts/servertest.jsp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/servertest.jsp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/serverscripts/servertest.jsp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/serverscripts/servertest.jsp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/sling-logo.png (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/sling-logo.png)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/sling-logo.png?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/sling-logo.png&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/sling-logo.png&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
Binary files - no diff available.

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/standalone-test.ecma (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/standalone-test.ecma)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/standalone-test.ecma?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/standalone-test.ecma&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/standalone-test.ecma&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.html (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.html)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.html?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.html&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.html&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.js (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.js)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.js?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.js&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.js&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.json (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.json)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.json?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.json&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.json&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.txt (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.txt)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.txt?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.txt&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.txt&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.xml (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.xml)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.xml?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.xml&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.xml&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.zip (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.zip)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.zip?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/testfile.zip&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/testfile.zip&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
Binary files - no diff available.

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/usermanager/privileges-info.json.esp (from r950106, sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/usermanager/privileges-info.json.esp?p2=sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/usermanager/privileges-info.json.esp&p1=sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Copied: sling/trunk/launchpad/integration-tests/src/main/resources/log4j.properties (from r950106, sling/trunk/launchpad/testing/src/test/resources/log4j.properties)
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/resources/log4j.properties?p2=sling/trunk/launchpad/integration-tests/src/main/resources/log4j.properties&p1=sling/trunk/launchpad/testing/src/test/resources/log4j.properties&r1=950106&r2=950744&rev=950744&view=diff
==============================================================================
    (empty)

Modified: sling/trunk/launchpad/testing/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/pom.xml?rev=950744&r1=950743&r2=950744&view=diff
==============================================================================
--- sling/trunk/launchpad/testing/pom.xml (original)
+++ sling/trunk/launchpad/testing/pom.xml Wed Jun  2 20:06:21 2010
@@ -240,12 +240,15 @@
                                     <goal>test</goal>
                                 </goals>
                                 <configuration>
+                                    <!--  needed to make it possible to scan the jar -->
+                                    <useManifestOnlyJar>false</useManifestOnlyJar>
+                                
                                     <excludes>
                                         <exclude>none</exclude>
                                     </excludes>
                                     <includes>
                                         <include>
-                                            ${integration.test.code.path}/**/*Test.java
+                                            **/launchpad/testing/TestAll.java
                                         </include>
                                     </includes>
                                     <systemProperties>
@@ -333,6 +336,9 @@
                                 <exclude>
                                     ${integration.test.code.path}/**/*.java
                                 </exclude>
+                                <exclude>
+                                     **/launchpad/testing/TestAll.java
+                                </exclude>
                             </excludes>
                         </configuration>
                     </plugin>
@@ -360,6 +366,12 @@
     </profiles>
 
     <dependencies>
+        <dependency>
+             <groupId>org.apache.sling</groupId>
+             <artifactId>org.apache.sling.launchpad.integration-tests</artifactId>
+             <version>0.0.1-SNAPSHOT</version>
+             <scope>test</scope>
+        </dependency>
 
         <!--  The basic Sling WebApp -->
         <dependency>

Added: sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java?rev=950744&view=auto
==============================================================================
--- sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java (added)
+++ sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java Wed Jun  2 20:06:21 2010
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.launchpad.testing;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Modifier;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.regex.Pattern;
+
+/**
+ *
+ */
+public class TestAll extends TestCase {
+    private static final Logger LOGGER = LoggerFactory.getLogger(TestAll.class);
+
+    @SuppressWarnings("unchecked")
+    public static Test suite() {
+        ClassLoader sysClassLoader = TestAll.class.getClassLoader();
+        
+        
+        
+        List<String> matchingClasses = new ArrayList<String>();
+        // Get the URLs
+        URL[] urls = ((URLClassLoader) sysClassLoader).getURLs();
+        String testPattern = System.getProperty("integrationTestPattern",
+                "**/launchpad/webapp/integrationtest/**/*Test");
+        String testRegex = convertToRegex(testPattern);
+        Pattern pattern = Pattern.compile(testRegex);
+        LOGGER.info("Using Pattern " + testRegex);
+        for (URL u : urls) {
+            try {
+                matchingClasses.addAll(scanFile(new File(u.toURI()), pattern));
+            } catch (URISyntaxException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            } catch (IOException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+        }
+        ClassLoader cl = TestAll.class.getClassLoader();
+        Set<Class<TestCase>> classSet = new HashSet<Class<TestCase>>();
+        for (String classFile : matchingClasses) {
+            String className = classFileToName(classFile);
+            try {
+                Class<TestCase> c = (Class<TestCase>) cl.loadClass(className);
+                if (!c.isInterface() && !Modifier.isAbstract(c.getModifiers()) ) {
+                    LOGGER.info("Added "+className);
+                    classSet.add(c);
+                }
+            } catch (ClassNotFoundException e) {
+                e.printStackTrace();
+            }
+        }
+        TestSuite suite = new TestSuite(classSet.toArray(new Class[classSet.size()]),"Sling Inregration Tests matching "+testPattern);
+      
+        return suite;
+    }
+
+    /**
+     * @param classFile
+     * @return
+     */
+    private static String classFileToName(String classFile) {
+        String className =  classFile.substring(0, classFile.length() - (".class".length()))
+                .replace('/', '.');
+        if ( className.charAt(0) == '.' ) {
+            className = className.substring(1);
+        }
+        return className;
+    }
+
+    /**
+     * @param testPattern
+     * @return
+     */
+    private static String convertToRegex(String testPattern) {
+        return testPattern.replace("**/", ".a?").replace("*", ".a?").replace(
+                ".a?", ".*?").replace("/", "\\/")
+                + "\\.class$";
+    }
+
+    /**
+     * @param u
+     * @return
+     * @throws IOException
+     * @throws URISyntaxException
+     */
+    private static List<String> scanFile(File f, Pattern pattern)
+            throws URISyntaxException, IOException {
+        List<String> classPathMatches = new ArrayList<String>();
+        if (f.isFile()) {
+            scanJar(f, pattern, classPathMatches);
+        } else {
+            scanDir(f, pattern, classPathMatches, f.getPath().length());
+        }
+        return classPathMatches;
+    }
+
+    /**
+     * @param f
+     * @param pattern
+     * @return
+     */
+    private static void scanDir(File f, Pattern pattern,
+            List<String> classPathMatches, int trim) {
+        if (f.isFile()) {
+            String name = f.getPath().substring(trim);
+            if (pattern.matcher(name).matches()) {
+                classPathMatches.add(name);
+            }
+        } else {
+            for (File cf : f.listFiles()) {
+                scanDir(cf, pattern, classPathMatches, trim);
+            }
+        }
+    }
+
+    /**
+     * @param u
+     * @return
+     * @throws URISyntaxException
+     * @throws IOException
+     */
+    private static void scanJar(File f, Pattern pattern,
+            List<String> classPathMatches) throws URISyntaxException,
+            IOException {
+        JarFile jarFile = new JarFile(f);
+        for (Enumeration<JarEntry> e = jarFile.entries(); e.hasMoreElements();) {
+            JarEntry je = e.nextElement();
+            String entryName = je.getName();
+            if (pattern.matcher(entryName).matches()) {
+                classPathMatches.add(entryName);
+            }
+        }
+        jarFile.close();
+    }
+
+}

Propchange: sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/testing/TestAll.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: sling/trunk/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/pom.xml?rev=950744&r1=950743&r2=950744&view=diff
==============================================================================
--- sling/trunk/pom.xml (original)
+++ sling/trunk/pom.xml Wed Jun  2 20:06:21 2010
@@ -146,6 +146,7 @@
                 <module>launchpad/test-services</module>
                 <module>launchpad/test-services-war</module>
                 <module>launchpad/testing</module>
+                <module>launchpad/integration-tests</module>
             </modules>
         </profile>
       <!-- Profile for including samples -->