Skip to content

Commit 9cafa1b

Browse files
committed
fix: update GraalVM version check to ensure compatibility with polyglot tests
1 parent 092dd2b commit 9cafa1b

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

core/src/test/java/karate/RunnerIT.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ public class RunnerIT extends AbstactIT {
4141
public void run() {
4242
List<String> tags = new ArrayList<>(List.of("~@ignore", "~@helper"));
4343

44-
if (!isGraalVMRuntime()) {
45-
// Skip polyglot tests on non-GraalVM runtimes (JS plugins won't load)
44+
if (!isGraalVM25_1_OrLater()) {
45+
// Skip polyglot tests on non-GraalVM or GraalVM < 25.1 (JS plugins won't load)
4646
tags.add("~@requires-graalvm");
4747
}
4848

@@ -53,11 +53,16 @@ public void run() {
5353
assertEquals(0, results.getFailCount());
5454
}
5555

56-
private static boolean isGraalVMRuntime() {
56+
private static boolean isGraalVM25_1_OrLater() {
5757
try {
58-
Class.forName("org.graalvm.home.Version");
59-
return true;
60-
} catch (ClassNotFoundException e) {
58+
var versionClass = Class.forName("org.graalvm.home.Version");
59+
var getCurrent = versionClass.getMethod("getCurrent");
60+
var version = getCurrent.invoke(null);
61+
var compareTo = versionClass.getMethod("compareTo", versionClass);
62+
var v25_1 = versionClass.getMethod("create", int.class, int.class)
63+
.invoke(null, 25, 1);
64+
return (int) compareTo.invoke(version, v25_1) >= 0;
65+
} catch (Exception e) {
6166
return false;
6267
}
6368
}

0 commit comments

Comments
 (0)