Repository: maven-surefire
Updated Branches:
  refs/heads/master b40fe6da3 -> 0c2656f71


[SUREFIRE] improved Surefire855*IT and JAVA_HOME inherited from main process to 
IT JVM


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/0c2656f7
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/0c2656f7
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/0c2656f7

Branch: refs/heads/master
Commit: 0c2656f71ca014d362b185c4bcf034c80b85b48d
Parents: b40fe6d
Author: Tibor17 <tibo...@lycos.com>
Authored: Wed Oct 7 22:25:07 2015 +0200
Committer: Tibor17 <tibo...@lycos.com>
Committed: Wed Oct 7 22:25:07 2015 +0200

----------------------------------------------------------------------
 .../surefire/its/fixture/SurefireLauncher.java  | 28 ++++++++++
 .../surefire-855-failsafe-use-bundle/pom.xml    |  6 +++
 .../java/jiras/surefre855/bundle/FooIT.java     | 56 +++++++++++++++++---
 .../test/java/jiras/surefire855/jar/FooIT.java  | 45 ++++++++++++++--
 .../surefire-855-failsafe-use-war/pom.xml       |  6 +++
 .../test/java/jiras/surefire855/war/FooIT.java  | 55 ++++++++++++++++---
 6 files changed, 180 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0c2656f7/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java
 
b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java
index d78deb1..cf0d90d 100755
--- 
a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java
+++ 
b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.its.fixture;
  */
 
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.maven.artifact.versioning.ArtifactVersion;
@@ -68,8 +69,35 @@ public class SurefireLauncher
         {
             mavenLauncher.addGoal( s );
         }
+        setInProcessJavaHome();
     }
 
+    public SurefireLauncher setInProcessJavaHome()
+    {
+        String javaHome = System.getenv( "JAVA_HOME" );
+        if ( javaHome != null && javaHome.length() > 0 )
+        {
+            try
+            {
+                File javaHomeAsDir = new File( javaHome ).getCanonicalFile();
+                if ( javaHomeAsDir.isDirectory() )
+                {
+                    setLauncherJavaHome( javaHomeAsDir.getPath() );
+                }
+            }
+            catch ( IOException e )
+            {
+                throw new RuntimeException( e );
+            }
+        }
+        return this;
+    }
+
+    public SurefireLauncher setLauncherJavaHome( String javaHome )
+    {
+        mavenLauncher.addEnvVar( "JAVA_HOME", javaHome );
+        return this;
+    }
 
     public SurefireLauncher getSubProjectLauncher( String subProject )
         throws VerificationException

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0c2656f7/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/pom.xml
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/pom.xml
 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/pom.xml
index db53997..bca3e1e 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/pom.xml
+++ 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/pom.xml
@@ -55,6 +55,12 @@
       <version>2.0M9</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+      <version>1.3</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <plugins>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0c2656f7/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/src/test/java/jiras/surefre855/bundle/FooIT.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/src/test/java/jiras/surefre855/bundle/FooIT.java
 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/src/test/java/jiras/surefre855/bundle/FooIT.java
index 6787b91..aeb666d 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/src/test/java/jiras/surefre855/bundle/FooIT.java
+++ 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-bundle/src/test/java/jiras/surefre855/bundle/FooIT.java
@@ -27,13 +27,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringReader;
 import java.util.Properties;
+import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 
 import static org.fest.assertions.api.Assertions.assertThat;
 import static org.fest.assertions.api.Assertions.contentOf;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.Matchers.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 public final class FooIT
@@ -44,11 +43,16 @@ public final class FooIT
 
     private static final String TEST_RESOURCE = 
"/jiras/surefire855/bundle/properties/surefire855.properties";
 
+    private static File surefireDir()
+        throws IOException
+    {
+        return new File( "target/surefire" ).getCanonicalFile();
+    }
+
     private static File[] surefireProviderProperties()
         throws IOException
     {
-        final File surefireDir = new File( "target/surefire" 
).getCanonicalFile();
-        return surefireDir.listFiles( new FileFilter()
+        return surefireDir().listFiles( new FileFilter()
         {
             public boolean accept( File pathname )
             {
@@ -64,6 +68,25 @@ public final class FooIT
         } );
     }
 
+    private static File[] surefireBooterJar()
+        throws IOException
+    {
+        return surefireDir().listFiles( new FileFilter()
+        {
+            public boolean accept( File pathname )
+            {
+                try
+                {
+                    return isSurefireBooter( pathname );
+                }
+                catch ( IOException e )
+                {
+                    return false;
+                }
+            }
+        } );
+    }
+
     /**
      * See BooterSerializer#serialize().
      */
@@ -76,11 +99,30 @@ public final class FooIT
             && fileName.endsWith( "tmp" );
     }
 
+    private static boolean isSurefireBooter( File pathname )
+        throws IOException
+    {
+        pathname = pathname.getCanonicalFile();
+        String fileName = pathname.getName();
+        return pathname.isFile() && fileName.startsWith( "surefirebooter" ) && 
fileName.endsWith( ".jar" );
+    }
+
     private static String manifestClassPath( Class clazz )
         throws IOException
     {
-        Manifest manifest = new Manifest( clazz.getResourceAsStream( 
"/META-INF/MANIFEST.MF" ) );
-        return manifest.getMainAttributes().getValue( "Class-Path" );
+        File[] booters = surefireBooterJar();
+        assertThat( booters, is( arrayWithSize( 1 ) ) );
+        File booter = booters[0];
+        JarFile jarFile = new JarFile( booter );
+        try
+        {
+            Manifest manifest = jarFile.getManifest();
+            return manifest.getMainAttributes().getValue( "Class-Path" );
+        }
+        finally
+        {
+            jarFile.close();
+        }
     }
 
     private static Properties loadProperties( Class clazz, String resourcePath 
)

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0c2656f7/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-jar/src/test/java/jiras/surefire855/jar/FooIT.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-jar/src/test/java/jiras/surefire855/jar/FooIT.java
 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-jar/src/test/java/jiras/surefire855/jar/FooIT.java
index cb1526d..606985a 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-jar/src/test/java/jiras/surefire855/jar/FooIT.java
+++ 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-jar/src/test/java/jiras/surefire855/jar/FooIT.java
@@ -27,11 +27,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringReader;
 import java.util.Properties;
+import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 
 import static org.fest.assertions.api.Assertions.assertThat;
 import static org.fest.assertions.api.Assertions.contentOf;
-import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.Matchers.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assume.assumeThat;
 
@@ -68,6 +69,25 @@ public final class FooIT
         } );
     }
 
+    private static File[] surefireBooterJar()
+        throws IOException
+    {
+        return surefireDir().listFiles( new FileFilter()
+        {
+            public boolean accept( File pathname )
+            {
+                try
+                {
+                    return isSurefireBooter( pathname );
+                }
+                catch ( IOException e )
+                {
+                    return false;
+                }
+            }
+        } );
+    }
+
     /**
      * See BooterSerializer#serialize().
      */
@@ -80,11 +100,30 @@ public final class FooIT
             && fileName.endsWith( "tmp" );
     }
 
+    private static boolean isSurefireBooter( File pathname )
+        throws IOException
+    {
+        pathname = pathname.getCanonicalFile();
+        String fileName = pathname.getName();
+        return pathname.isFile() && fileName.startsWith( "surefirebooter" ) && 
fileName.endsWith( ".jar" );
+    }
+
     private static String manifestClassPath( Class clazz )
         throws IOException
     {
-        Manifest manifest = new Manifest( clazz.getResourceAsStream( 
"/META-INF/MANIFEST.MF" ) );
-        return manifest.getMainAttributes().getValue( "Class-Path" );
+        File[] booters = surefireBooterJar();
+        assertThat( booters, is( arrayWithSize( 1 ) ) );
+        File booter = booters[0];
+        JarFile jarFile = new JarFile( booter );
+        try
+        {
+            Manifest manifest = jarFile.getManifest();
+            return manifest.getMainAttributes().getValue( "Class-Path" );
+        }
+        finally
+        {
+            jarFile.close();
+        }
     }
 
     private static Properties loadProperties( Class clazz, String resourcePath 
)

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0c2656f7/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/pom.xml
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/pom.xml
 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/pom.xml
index 4b0fb51..5dea1b0 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/pom.xml
+++ 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/pom.xml
@@ -55,6 +55,12 @@
       <version>2.0M9</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+      <version>1.3</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <plugins>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/0c2656f7/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/src/test/java/jiras/surefire855/war/FooIT.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/src/test/java/jiras/surefire855/war/FooIT.java
 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/src/test/java/jiras/surefire855/war/FooIT.java
index 7905079..f15bd15 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/src/test/java/jiras/surefire855/war/FooIT.java
+++ 
b/surefire-integration-tests/src/test/resources/surefire-855-failsafe-use-war/src/test/java/jiras/surefire855/war/FooIT.java
@@ -27,12 +27,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringReader;
 import java.util.Properties;
+import java.util.jar.JarFile;
 import java.util.jar.Manifest;
 
 import static org.fest.assertions.api.Assertions.assertThat;
 import static org.fest.assertions.api.Assertions.contentOf;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.Matchers.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 public final class FooIT
@@ -41,11 +41,16 @@ public final class FooIT
 
     private static final String TEST_RESOURCE = 
"/jiras/surefire855/war/properties/surefire855.properties";
 
+    private static File surefireDir()
+        throws IOException
+    {
+        return new File( "target/surefire" ).getCanonicalFile();
+    }
+
     private static File[] surefireProviderProperties()
         throws IOException
     {
-        final File surefireDir = new File( "target/surefire" 
).getCanonicalFile();
-        return surefireDir.listFiles( new FileFilter()
+        return surefireDir().listFiles( new FileFilter()
         {
             public boolean accept( File pathname )
             {
@@ -61,6 +66,25 @@ public final class FooIT
         } );
     }
 
+    private static File[] surefireBooterJar()
+        throws IOException
+    {
+        return surefireDir().listFiles( new FileFilter()
+        {
+            public boolean accept( File pathname )
+            {
+                try
+                {
+                    return isSurefireBooter( pathname );
+                }
+                catch ( IOException e )
+                {
+                    return false;
+                }
+            }
+        } );
+    }
+
     /**
      * See BooterSerializer#serialize().
      */
@@ -73,11 +97,30 @@ public final class FooIT
             && fileName.endsWith( "tmp" );
     }
 
+    private static boolean isSurefireBooter( File pathname )
+        throws IOException
+    {
+        pathname = pathname.getCanonicalFile();
+        String fileName = pathname.getName();
+        return pathname.isFile() && fileName.startsWith( "surefirebooter" ) && 
fileName.endsWith( ".jar" );
+    }
+
     private static String manifestClassPath( Class clazz )
         throws IOException
     {
-        Manifest manifest = new Manifest( clazz.getResourceAsStream( 
"/META-INF/MANIFEST.MF" ) );
-        return manifest.getMainAttributes().getValue( "Class-Path" );
+        File[] booters = surefireBooterJar();
+        assertThat( booters, is( arrayWithSize( 1 ) ) );
+        File booter = booters[0];
+        JarFile jarFile = new JarFile( booter );
+        try
+        {
+            Manifest manifest = jarFile.getManifest();
+            return manifest.getMainAttributes().getValue( "Class-Path" );
+        }
+        finally
+        {
+            jarFile.close();
+        }
     }
 
     private static Properties loadProperties( Class clazz, String resourcePath 
)

Reply via email to