[ https://issues.apache.org/jira/browse/SUREFIRE-2113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Karl Heinz Marbaise updated SUREFIRE-2113: ------------------------------------------ Description: Having the following test: {code:java} class TempDirTest { @Test void testTempDir(@TempDir Path tmpdir) { System.out.println("@TempDir : " + tmpdir); System.out.println("java.io.tmpdir : " + System.getProperty("java.io.tmpdir")); Path actual = tmpdir.getParent().toAbsolutePath(); Path expected = Path.of(System.getProperty("java.io.tmpdir")); Assertions.assertEquals(expected, actual); } } {code} If I run via: {code} mvn -Djava.io.tmpdir=/tmp/custom clean test {code} within the following environment: {code} Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /Users/khm/tools/maven Java version: 11.0.15, vendor: Azul Systems, Inc., runtime: /Users/khm/.sdkman/candidates/java/11.0.15-zulu/zulu-11.jdk/Contents/Home Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" {code} The given test succeeds. If I use the following environment (changed JDK version): {code} Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /Users/khm/tools/maven Java version: 17.0.4, vendor: Azul Systems, Inc., runtime: /Users/khm/.sdkman/candidates/java/17.0.4-zulu/zulu-17.jdk/Contents/Home Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" {code} The given test fails: {code} [INFO] ------------------------------------------------------- [INFO] Running org.example.TempDirTest @TempDir : /var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T/junit2987236559648574880 java.io.tmpdir : /tmp/custom [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.027 s <<< FAILURE! - in org.example.TempDirTest [ERROR] testTempDir{Path} Time elapsed: 0.023 s <<< FAILURE! org.opentest4j.AssertionFailedError: expected: </tmp/custom> but was: </var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T> at org.example.TempDirTest.testTempDir(TempDirTest.java:18) [INFO] [INFO] Results: {code} I've checked that with different combinations: * Maven 3.8.6 * JUnit Jupiter 5.8.2 / 5.9.0 * Maven Surefire Plugin Version: * 2.22.2 * 3.0.0-M7 * [Platform Maven Plugin](https://github.com/sormuras/junit-platform-maven-plugin) I have create a full [working example](https://github.com/khmarbaise/tempdir-annotation) which contains appropriate named branches for the different combinations. I've also tested the same combinations with JDK 17/11 from liberica with the same result. Also with JDK18 the test fails. After more checking I found out that via the standalone launcher, there is no problem at all. (no difference between jdk versions). {code} java -Djava.io.tmpdir=/tmp/custom -jar ~/.m2/repository/org/junit/platform/junit-platform-console-standalone/1.9.0/junit-platform-console-standalone-1.9.0.jar -cp classes:target/test-classes --scan-classpath {code} The output: {code} @TempDir : /tmp/custom/junit17756560401872268189 java.io.tmpdir : /tmp/custom Thanks for using JUnit! Support its development at https://junit.org/sponsoring ╷ ├─ JUnit Jupiter ✔ │ └─ TempDirTest ✔ │ └─ testTempDir(Path) ✔ ├─ JUnit Vintage ✔ └─ JUnit Platform Suite ✔ Test run finished after 51 ms [ 4 containers found ] [ 0 containers skipped ] [ 4 containers started ] [ 0 containers aborted ] [ 4 containers successful ] [ 0 containers failed ] [ 1 tests found ] [ 0 tests skipped ] [ 1 tests started ] [ 0 tests aborted ] [ 1 tests successful ] [ 0 tests failed ] {code} Has someone an Idea what could cause such thing? was: Having the following test: {code:java} class TempDirTest { @Test void testTempDir(@TempDir Path tmpdir) { System.out.println("@TempDir : " + tmpdir); System.out.println("java.io.tmpdir : " + System.getProperty("java.io.tmpdir")); Path actual = tmpdir.getParent().toAbsolutePath(); Path expected = Path.of(System.getProperty("java.io.tmpdir")); Assertions.assertEquals(expected, actual); } } {code} If I run via: {code} mvn -Djava.io.tmpdir=/tmp/custom clean test {code} within the following environment: {code} Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /Users/khm/tools/maven Java version: 11.0.15, vendor: Azul Systems, Inc., runtime: /Users/khm/.sdkman/candidates/java/11.0.15-zulu/zulu-11.jdk/Contents/Home Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" ``` The given test succeeds. If I use the following environment (changed JDK version): {code} Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /Users/khm/tools/maven Java version: 17.0.4, vendor: Azul Systems, Inc., runtime: /Users/khm/.sdkman/candidates/java/17.0.4-zulu/zulu-17.jdk/Contents/Home Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" {code} The given test fails: {code} [INFO] ------------------------------------------------------- [INFO] Running org.example.TempDirTest @TempDir : /var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T/junit2987236559648574880 java.io.tmpdir : /tmp/custom [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.027 s <<< FAILURE! - in org.example.TempDirTest [ERROR] testTempDir{Path} Time elapsed: 0.023 s <<< FAILURE! org.opentest4j.AssertionFailedError: expected: </tmp/custom> but was: </var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T> at org.example.TempDirTest.testTempDir(TempDirTest.java:18) [INFO] [INFO] Results: {code} I've checked that with different combinations: * Maven 3.8.6 * JUnit Jupiter 5.8.2 / 5.9.0 * Maven Surefire Plugin Version: * 2.22.2 * 3.0.0-M7 * [Platform Maven Plugin](https://github.com/sormuras/junit-platform-maven-plugin) I have create a full [working example](https://github.com/khmarbaise/tempdir-annotation) which contains appropriate named branches for the different combinations. I've also tested the same combinations with JDK 17/11 from liberica with the same result. Also with JDK18 the test fails. After more checking I found out that via the standalone launcher, there is no problem at all. (no difference between jdk versions). {code} java -Djava.io.tmpdir=/tmp/custom -jar ~/.m2/repository/org/junit/platform/junit-platform-console-standalone/1.9.0/junit-platform-console-standalone-1.9.0.jar -cp classes:target/test-classes --scan-classpath {code} The output: {code} @TempDir : /tmp/custom/junit17756560401872268189 java.io.tmpdir : /tmp/custom Thanks for using JUnit! Support its development at https://junit.org/sponsoring ╷ ├─ JUnit Jupiter ✔ │ └─ TempDirTest ✔ │ └─ testTempDir(Path) ✔ ├─ JUnit Vintage ✔ └─ JUnit Platform Suite ✔ Test run finished after 51 ms [ 4 containers found ] [ 0 containers skipped ] [ 4 containers started ] [ 0 containers aborted ] [ 4 containers successful ] [ 0 containers failed ] [ 1 tests found ] [ 0 tests skipped ] [ 1 tests started ] [ 0 tests aborted ] [ 1 tests successful ] [ 0 tests failed ] {code} Has someone an Idea what could cause such thing? > @TempDir does not correctly work > -------------------------------- > > Key: SUREFIRE-2113 > URL: https://issues.apache.org/jira/browse/SUREFIRE-2113 > Project: Maven Surefire > Issue Type: Bug > Components: JUnit 5.x support > Affects Versions: 2.22.2, 3.0.0-M7 > Reporter: Karl Heinz Marbaise > Priority: Major > > Having the following test: > {code:java} > class TempDirTest { > @Test > void testTempDir(@TempDir Path tmpdir) { > System.out.println("@TempDir : " + tmpdir); > System.out.println("java.io.tmpdir : " + > System.getProperty("java.io.tmpdir")); > Path actual = tmpdir.getParent().toAbsolutePath(); > Path expected = Path.of(System.getProperty("java.io.tmpdir")); > Assertions.assertEquals(expected, actual); > } > } > {code} > If I run via: > {code} > mvn -Djava.io.tmpdir=/tmp/custom clean test > {code} > within the following environment: > {code} > Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) > Maven home: /Users/khm/tools/maven > Java version: 11.0.15, vendor: Azul Systems, Inc., runtime: > /Users/khm/.sdkman/candidates/java/11.0.15-zulu/zulu-11.jdk/Contents/Home > Default locale: en_DE, platform encoding: UTF-8 > OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" > {code} > The given test succeeds. > If I use the following environment (changed JDK version): > {code} > Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) > Maven home: /Users/khm/tools/maven > Java version: 17.0.4, vendor: Azul Systems, Inc., runtime: > /Users/khm/.sdkman/candidates/java/17.0.4-zulu/zulu-17.jdk/Contents/Home > Default locale: en_DE, platform encoding: UTF-8 > OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" > {code} > The given test fails: > {code} > [INFO] ------------------------------------------------------- > [INFO] Running org.example.TempDirTest > @TempDir : > /var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T/junit2987236559648574880 > java.io.tmpdir : /tmp/custom > [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.027 > s <<< FAILURE! - in org.example.TempDirTest > [ERROR] testTempDir{Path} Time elapsed: 0.023 s <<< FAILURE! > org.opentest4j.AssertionFailedError: expected: </tmp/custom> but was: > </var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T> > at org.example.TempDirTest.testTempDir(TempDirTest.java:18) > [INFO] > [INFO] Results: > {code} > I've checked that with different combinations: > * Maven 3.8.6 > * JUnit Jupiter 5.8.2 / 5.9.0 > * Maven Surefire Plugin Version: > * 2.22.2 > * 3.0.0-M7 > * [Platform Maven > Plugin](https://github.com/sormuras/junit-platform-maven-plugin) > I have create a full [working > example](https://github.com/khmarbaise/tempdir-annotation) which contains > appropriate named branches for the different combinations. > I've also tested the same combinations with JDK 17/11 from liberica with the > same result. Also with JDK18 the test fails. > After more checking I found out that via the standalone launcher, there is no > problem at all. (no difference between jdk versions). > {code} > java -Djava.io.tmpdir=/tmp/custom -jar > ~/.m2/repository/org/junit/platform/junit-platform-console-standalone/1.9.0/junit-platform-console-standalone-1.9.0.jar > -cp classes:target/test-classes --scan-classpath > {code} > The output: > {code} > @TempDir : /tmp/custom/junit17756560401872268189 > java.io.tmpdir : /tmp/custom > Thanks for using JUnit! Support its development at > https://junit.org/sponsoring > ╷ > ├─ JUnit Jupiter ✔ > │ └─ TempDirTest ✔ > │ └─ testTempDir(Path) ✔ > ├─ JUnit Vintage ✔ > └─ JUnit Platform Suite ✔ > Test run finished after 51 ms > [ 4 containers found ] > [ 0 containers skipped ] > [ 4 containers started ] > [ 0 containers aborted ] > [ 4 containers successful ] > [ 0 containers failed ] > [ 1 tests found ] > [ 0 tests skipped ] > [ 1 tests started ] > [ 0 tests aborted ] > [ 1 tests successful ] > [ 0 tests failed ] > {code} > Has someone an Idea what could cause such thing? -- This message was sent by Atlassian Jira (v8.20.10#820010)