This is an automated email from the ASF dual-hosted git repository. tibordigana pushed a commit to branch SUREFIRE-1602 in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit adb286069bdfbfae1814e99f55be9d51a8bb30a8 Author: Tibor17 <[email protected]> AuthorDate: Mon Dec 3 00:18:18 2018 +0100 [SUREFIRE-1602] Surefire fails loading class ForkedBooter when using a sub-directory pom file and a local maven repo --- .../plugin/surefire/AbstractSurefireMojo.java | 16 ++++++- .../apache/maven/surefire/its/Surefire1602IT.java | 49 ++++++++++++++++++++++ .../resources/surefire-1602/application/pom.xml | 15 +++++++ .../surefire-1602/integration-tests/pom.xml | 39 +++++++++++++++++ .../integration-tests/src/test/java/org/ATest.java | 9 ++++ .../src/test/resources/surefire-1602/pom.xml | 18 ++++++++ .../resources/surefire-1602/unit-tests/pom.xml | 43 +++++++++++++++++++ .../unit-tests/src/test/java/org/ATest.java | 9 ++++ 8 files changed, 197 insertions(+), 1 deletion(-) diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java index b18463e..304f449 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java @@ -2369,7 +2369,21 @@ public abstract class AbstractSurefireMojo */ File getSurefireTempDir() { - return IS_OS_WINDOWS ? createSurefireBootDirectoryInTemp() : createSurefireBootDirectoryInBuild(); + File result = IS_OS_WINDOWS ? createSurefireBootDirectoryInTemp() : createSurefireBootDirectoryInBuild(); + try + { + File canonical = result.getCanonicalFile(); + if ( !result.equals( canonical ) ) + { + logger.debug( "Canonicalized tempDir path '" + result + "' to '" + canonical + "'" ); + } + return canonical; + } + catch ( IOException e ) + { + logger.error( "Could not canonicalize tempDir path '" + result + "'", e ); + } + return result; } /** diff --git a/surefire-its/src/test/java/org/apache/maven/surefire/its/Surefire1602IT.java b/surefire-its/src/test/java/org/apache/maven/surefire/its/Surefire1602IT.java new file mode 100644 index 0000000..d37b108 --- /dev/null +++ b/surefire-its/src/test/java/org/apache/maven/surefire/its/Surefire1602IT.java @@ -0,0 +1,49 @@ +package org.apache.maven.surefire.its; + +/* + * 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. + */ + +import org.apache.maven.surefire.its.fixture.OutputValidator; +import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase; +import org.apache.maven.surefire.its.fixture.SurefireLauncher; +import org.junit.Test; + +/** + * Test ability to specify a non canonical path as module root + * + * @author <a href="mailto:[email protected]">Enrico Olivelli</a> + */ +public class Surefire1602IT + extends SurefireJUnit4IntegrationTestCase +{ + @Test + public void nonCanonicalPath() throws Exception + { + SurefireLauncher launcher = unpack( "/surefire-1602" ); + launcher + .executeInstall(); + launcher + .addGoal( "--file" ) + .addGoal( "./integration-tests/pom.xml" ) + .executeTest(); + launcher + .getSubProjectValidator( "integration-tests" ) + .assertTestSuiteResults( 1, 0, 0, 0 ); + } +} diff --git a/surefire-its/src/test/resources/surefire-1602/application/pom.xml b/surefire-its/src/test/resources/surefire-1602/application/pom.xml new file mode 100644 index 0000000..d2a9c65 --- /dev/null +++ b/surefire-its/src/test/resources/surefire-1602/application/pom.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org</groupId> + <artifactId>testapp</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + + <artifactId>testapp-application</artifactId> +</project> diff --git a/surefire-its/src/test/resources/surefire-1602/integration-tests/pom.xml b/surefire-its/src/test/resources/surefire-1602/integration-tests/pom.xml new file mode 100644 index 0000000..583b377 --- /dev/null +++ b/surefire-its/src/test/resources/surefire-1602/integration-tests/pom.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org</groupId> + <artifactId>testapp</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + + <artifactId>testapp-integration-tests</artifactId> + + <dependencies> + <dependency> + <groupId>org</groupId> + <artifactId>testapp-application</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M2-SNAPSHOT</version> + </plugin> + </plugins> + </build> +</project> diff --git a/surefire-its/src/test/resources/surefire-1602/integration-tests/src/test/java/org/ATest.java b/surefire-its/src/test/resources/surefire-1602/integration-tests/src/test/java/org/ATest.java new file mode 100644 index 0000000..a4cc2be --- /dev/null +++ b/surefire-its/src/test/resources/surefire-1602/integration-tests/src/test/java/org/ATest.java @@ -0,0 +1,9 @@ +package org; + +import org.junit.Test; + +public class ATest { + @Test + public void test() { + } +} \ No newline at end of file diff --git a/surefire-its/src/test/resources/surefire-1602/pom.xml b/surefire-its/src/test/resources/surefire-1602/pom.xml new file mode 100644 index 0000000..508e99b --- /dev/null +++ b/surefire-its/src/test/resources/surefire-1602/pom.xml @@ -0,0 +1,18 @@ +<?xml version='1.0' encoding='utf-8'?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <groupId>org</groupId> + <artifactId>testapp</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>pom</packaging> + + <modules> + <module>application</module> + <module>unit-tests</module> + <module>integration-tests</module> + </modules> +</project> diff --git a/surefire-its/src/test/resources/surefire-1602/unit-tests/pom.xml b/surefire-its/src/test/resources/surefire-1602/unit-tests/pom.xml new file mode 100644 index 0000000..4172dc8 --- /dev/null +++ b/surefire-its/src/test/resources/surefire-1602/unit-tests/pom.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org</groupId> + <artifactId>testapp</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + + <artifactId>testapp-unit-tests</artifactId> + + <dependencies> + <dependency> + <groupId>org</groupId> + <artifactId>testapp-application</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M2-SNAPSHOT</version> + <configuration> + <reuseForks>false</reuseForks> + <forkCount>1</forkCount> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/surefire-its/src/test/resources/surefire-1602/unit-tests/src/test/java/org/ATest.java b/surefire-its/src/test/resources/surefire-1602/unit-tests/src/test/java/org/ATest.java new file mode 100644 index 0000000..a4cc2be --- /dev/null +++ b/surefire-its/src/test/resources/surefire-1602/unit-tests/src/test/java/org/ATest.java @@ -0,0 +1,9 @@ +package org; + +import org.junit.Test; + +public class ATest { + @Test + public void test() { + } +} \ No newline at end of file
