Skip to content

Commit 58c446c

Browse files
committed
Make @ParameterizedClass work with GraalVM native-build-tools
Issue: #4440
1 parent 468ce37 commit 58c446c

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed

junit-jupiter-engine/src/nativeImage/initialize-at-build-time

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ org.junit.jupiter.engine.config.CachingJupiterConfiguration
33
org.junit.jupiter.engine.config.DefaultJupiterConfiguration
44
org.junit.jupiter.engine.config.EnumConfigurationParameterConverter
55
org.junit.jupiter.engine.config.InstantiatingConfigurationParameterConverter
6+
org.junit.jupiter.engine.descriptor.ClassTemplateTestDescriptor
7+
org.junit.jupiter.engine.descriptor.ClassTemplateInvocationTestDescriptor
68
org.junit.jupiter.engine.descriptor.ClassTestDescriptor
79
org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor
810
org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$ClassInfo
911
org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor$LifecycleMethods
1012
org.junit.jupiter.engine.descriptor.DynamicDescendantFilter
13+
org.junit.jupiter.engine.descriptor.DynamicDescendantFilter$Mode
1114
org.junit.jupiter.engine.descriptor.ExclusiveResourceCollector$1
1215
org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor
1316
org.junit.jupiter.engine.descriptor.JupiterTestDescriptor
@@ -17,6 +20,7 @@ org.junit.jupiter.engine.descriptor.NestedClassTestDescriptor
1720
org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor
1821
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor
1922
org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor
23+
org.junit.jupiter.engine.discovery.ClassSelectorResolver$DummyClassTemplateInvocationContext
2024
org.junit.jupiter.engine.execution.ConditionEvaluator
2125
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker
2226
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Copyright 2015-2025 the original author or authors.
3+
*
4+
* All rights reserved. This program and the accompanying materials are
5+
* made available under the terms of the Eclipse Public License v2.0 which
6+
* accompanies this distribution and is available at
7+
*
8+
* https://www.eclipse.org/legal/epl-v20.html
9+
*/
10+
11+
package com.example.project;
12+
13+
import static org.junit.jupiter.api.Assertions.assertEquals;
14+
15+
import org.junit.jupiter.api.Disabled;
16+
import org.junit.jupiter.api.Nested;
17+
import org.junit.jupiter.api.Test;
18+
import org.junit.jupiter.params.Parameter;
19+
import org.junit.jupiter.params.ParameterizedClass;
20+
import org.junit.jupiter.params.ParameterizedTest;
21+
import org.junit.jupiter.params.provider.ValueSource;
22+
23+
@ParameterizedClass
24+
@ValueSource(ints = { 1, 2 })
25+
class CalculatorParameterizedClassTests {
26+
27+
@Parameter
28+
int i;
29+
30+
@ParameterizedTest
31+
@ValueSource(ints = { 1, 2 })
32+
void parameterizedTest(int j) {
33+
Calculator calculator = new Calculator();
34+
assertEquals(i + j, calculator.add(i, j));
35+
}
36+
37+
@Nested
38+
@ParameterizedClass
39+
@ValueSource(ints = { 1, 2 })
40+
@Disabled("https://github.com/junit-team/junit5/issues/4440")
41+
class Inner {
42+
43+
final int j;
44+
45+
public Inner(int j) {
46+
this.j = j;
47+
}
48+
49+
@Test
50+
void regularTest() {
51+
Calculator calculator = new Calculator();
52+
assertEquals(i + j, calculator.add(i, j));
53+
}
54+
}
55+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
junit.platform.stacktrace.pruning.enabled=false

platform-tooling-support-tests/src/test/java/platform/tooling/support/tests/GraalVmStarterTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ void runsTestsInNativeImage(@TempDir Path workspace, @FilePrefix("gradle") Outpu
5353
.anyMatch(line -> line.contains("CalculatorTests > 1 + 1 = 2 SUCCESSFUL")) //
5454
.anyMatch(line -> line.contains("CalculatorTests > 1 + 100 = 101 SUCCESSFUL")) //
5555
.anyMatch(line -> line.contains("ClassLevelAnnotationTests$Inner > test() SUCCESSFUL")) //
56+
.anyMatch(
57+
line -> line.contains("com.example.project.CalculatorParameterizedClassTests > [1] 1 SUCCESSFUL")) //
58+
.anyMatch(
59+
line -> line.contains("com.example.project.CalculatorParameterizedClassTests > [2] 2 SUCCESSFUL")) //
5660
.anyMatch(line -> line.contains("com.example.project.VintageTests > test SUCCESSFUL")) //
5761
.anyMatch(line -> line.contains("BUILD SUCCESSFUL"));
5862
}

0 commit comments

Comments
 (0)