Skip to content

Commit 018e7ae

Browse files
committed
Handle equivalent temporary path aliases in Maven tests
1 parent 11be9a4 commit 018e7ae

3 files changed

Lines changed: 27 additions & 10 deletions

File tree

native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/JavaApplicationWithAgentFunctionalTest.groovy

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ class JavaApplicationWithAgentFunctionalTest extends AbstractGraalVMMavenFunctio
8282

8383
and:
8484
// Instrumented execution output reports the Maven-managed agent output directory. §FS-tracing-agent.3.
85-
outputContains "Instrumenting Maven test execution with the native-image-agent. Agent output: " +
86-
file('target/native/agent-output/test').canonicalPath
85+
outputContainsAbsoluteOrCanonicalPath(
86+
"Instrumenting Maven test execution with the native-image-agent. Agent output: ",
87+
file('target/native/agent-output/test'))
8788

8889
and:
8990
// Agent generates files
@@ -128,8 +129,9 @@ class JavaApplicationWithAgentFunctionalTest extends AbstractGraalVMMavenFunctio
128129

129130
and:
130131
// Instrumented execution output reports the Maven-managed agent output directory. §FS-tracing-agent.3.
131-
outputContains "Instrumenting Maven application execution with the native-image-agent. Agent output: " +
132-
file('target/native/agent-output/main').canonicalPath
132+
outputContainsAbsoluteOrCanonicalPath(
133+
"Instrumenting Maven application execution with the native-image-agent. Agent output: ",
134+
file('target/native/agent-output/main'))
133135

134136
when:
135137
mvn'-Pnative', '-DquickBuild', '-DskipNativeTests', '-Dagent=true', 'native:metadata-copy'

native-maven-plugin/src/functionalTest/groovy/org/graalvm/buildtools/maven/MetadataRepositoryFunctionalTest.groovy

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,9 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes
6868
buildSucceeded
6969
outputContains "Hello, from reflection!"
7070
// Maven output identifies the selected metadata repository source. §FS-resources-and-metadata.2.
71-
outputContains "Using GraalVM reachability metadata repository from " +
72-
file("config-directory").canonicalFile.toURI().toASCIIString()
71+
outputContainsAbsoluteOrCanonicalUri(
72+
"Using GraalVM reachability metadata repository from ",
73+
file("config-directory"))
7374

7475
and: "it doesn't find a configuration directory for the current version"
7576
outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory not found. Trying latest version."
@@ -125,8 +126,9 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes
125126
buildSucceeded
126127
outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration is forced to version 2"
127128
// Maven output identifies the selected metadata repository source. §FS-resources-and-metadata.2.
128-
outputContains "Using GraalVM reachability metadata repository from " +
129-
file("config-directory").canonicalFile.toURI().toASCIIString()
129+
outputContainsAbsoluteOrCanonicalUri(
130+
"Using GraalVM reachability metadata repository from ",
131+
file("config-directory"))
130132
outputContains "Reflection failed"
131133
}
132134

@@ -141,8 +143,9 @@ class MetadataRepositoryFunctionalTest extends AbstractGraalVMMavenFunctionalTes
141143
buildSucceeded
142144
outputContains "Hello, from reflection!"
143145
// Maven output identifies the selected metadata repository source. §FS-resources-and-metadata.2.
144-
outputContains "Using GraalVM reachability metadata repository from " +
145-
file("target/repo.zip").canonicalFile.toURI().toASCIIString()
146+
outputContainsAbsoluteOrCanonicalUri(
147+
"Using GraalVM reachability metadata repository from ",
148+
file("target/repo.zip"))
146149

147150
and: "it doesn't find a configuration directory for the current version"
148151
outputContains "[graalvm reachability metadata repository for org.graalvm.internal:library-with-reflection:1.5]: Configuration directory not found. Trying latest version."

native-maven-plugin/src/testFixtures/groovy/org/graalvm/buildtools/maven/AbstractGraalVMMavenFunctionalTest.groovy

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,18 @@ abstract class AbstractGraalVMMavenFunctionalTest extends Specification {
218218
normalizeString(result.stdOut).contains(normalizeString(text))
219219
}
220220

221+
// Temp directories can be reported through equivalent aliases (macOS symlinks or Windows 8.3 paths).
222+
// §E2E-functional-tests.3.5 §E2E-functional-tests.3.6
223+
boolean outputContainsAbsoluteOrCanonicalPath(String prefix, File location) {
224+
[location.absolutePath, location.canonicalPath].any { path -> outputContains(prefix + path) }
225+
}
226+
227+
boolean outputContainsAbsoluteOrCanonicalUri(String prefix, File location) {
228+
[location.absoluteFile, location.canonicalFile]
229+
.collect { file -> file.toURI().toASCIIString() }
230+
.any { uri -> outputContains(prefix + uri) }
231+
}
232+
221233
boolean outputContainsPattern(String pattern) {
222234
def normalizedOutput = normalizeString(result.stdOut)
223235
def lines = normalizedOutput.split('\n')

0 commit comments

Comments
 (0)