Skip to content

Commit 1a18763

Browse files
committed
backport 3e04da1b6aa93c917603911255129928d003fa83
1 parent 2f48fbf commit 1a18763

111 files changed

Lines changed: 1441 additions & 942 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

test/langtools/jdk/jshell/AnalysisTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -25,14 +25,14 @@
2525
* @test
2626
* @summary Test SourceCodeAnalysis
2727
* @build KullaTesting TestingInputStream
28-
* @run testng AnalysisTest
28+
* @run junit AnalysisTest
2929
*/
3030

31-
import org.testng.annotations.Test;
31+
import org.junit.jupiter.api.Test;
3232

33-
@Test
3433
public class AnalysisTest extends KullaTesting {
3534

35+
@Test
3636
public void testSource() {
3737
assertAnalyze("int x=3//test", "int x=3;//test", "", true);
3838
assertAnalyze("int x=3 ;//test", "int x=3 ;//test", "", true);
@@ -41,6 +41,7 @@ public void testSource() {
4141
assertAnalyze("int ff; int v // hi", "int ff;", " int v // hi", true);
4242
}
4343

44+
@Test
4445
public void testSourceSlashStar() {
4546
assertAnalyze("/*zoo*/int x=3 /*test*/", "/*zoo*/int x=3; /*test*/", "", true);
4647
assertAnalyze("/*zoo*/int x=3 ;/*test*/", "/*zoo*/int x=3 ;/*test*/", "", true);
@@ -49,11 +50,13 @@ public void testSourceSlashStar() {
4950
assertAnalyze("int ff; int v /*hgjghj*/", "int ff;", " int v /*hgjghj*/", true);
5051
}
5152

53+
@Test
5254
public void testIncomplete() {
5355
assertAnalyze("void m() { //erer", null, "void m() { //erer\n", false);
5456
assertAnalyze("int m=//", null, "int m=//\n", false);
5557
}
5658

59+
@Test
5760
public void testExpression() {
5861
assertAnalyze("45//test", "45//test", "", true);
5962
assertAnalyze("45;//test", "45;//test", "", true);

test/langtools/jdk/jshell/AnalyzeSnippetTest.java

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2017, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -26,23 +26,20 @@
2626
* @bug 8182270
2727
* @summary test non-eval Snippet analysis
2828
* @build KullaTesting TestingInputStream
29-
* @run testng AnalyzeSnippetTest
29+
* @run junit AnalyzeSnippetTest
3030
*/
3131

3232
import java.io.ByteArrayOutputStream;
3333
import java.io.PrintStream;
3434
import java.util.List;
3535
import jdk.jshell.Snippet;
3636
import jdk.jshell.DeclarationSnippet;
37-
import org.testng.annotations.Test;
3837

3938
import jdk.jshell.JShell;
4039
import jdk.jshell.MethodSnippet;
41-
import static org.testng.Assert.assertFalse;
42-
import static org.testng.Assert.assertTrue;
43-
import static org.testng.Assert.assertEquals;
44-
import org.testng.annotations.AfterMethod;
45-
import org.testng.annotations.BeforeMethod;
40+
import static org.junit.jupiter.api.Assertions.assertFalse;
41+
import static org.junit.jupiter.api.Assertions.assertTrue;
42+
import static org.junit.jupiter.api.Assertions.assertEquals;
4643
import jdk.jshell.ErroneousSnippet;
4744
import jdk.jshell.ExpressionSnippet;
4845
import jdk.jshell.ImportSnippet;
@@ -52,14 +49,16 @@
5249
import jdk.jshell.TypeDeclSnippet;
5350
import jdk.jshell.VarSnippet;
5451
import static jdk.jshell.Snippet.SubKind.*;
52+
import org.junit.jupiter.api.AfterEach;
53+
import org.junit.jupiter.api.BeforeEach;
54+
import org.junit.jupiter.api.Test;
5555

56-
@Test
5756
public class AnalyzeSnippetTest {
5857

5958
JShell state;
6059
SourceCodeAnalysis sca;
6160

62-
@BeforeMethod
61+
@BeforeEach
6362
public void setUp() {
6463
state = JShell.builder()
6564
.out(new PrintStream(new ByteArrayOutputStream()))
@@ -69,7 +68,7 @@ public void setUp() {
6968
sca = state.sourceCodeAnalysis();
7069
}
7170

72-
@AfterMethod
71+
@AfterEach
7372
public void tearDown() {
7473
if (state != null) {
7574
state.close();
@@ -78,62 +77,69 @@ public void tearDown() {
7877
sca = null;
7978
}
8079

80+
@Test
8181
public void testImport() {
8282
ImportSnippet sn = (ImportSnippet) assertSnippet("import java.util.List;",
8383
SubKind.SINGLE_TYPE_IMPORT_SUBKIND);
84-
assertEquals(sn.name(), "List");
84+
assertEquals("List", sn.name());
8585
sn = (ImportSnippet) assertSnippet("import static java.nio.file.StandardOpenOption.CREATE;",
8686
SubKind.SINGLE_STATIC_IMPORT_SUBKIND);
8787
assertTrue(sn.isStatic());
8888
}
8989

90+
@Test
9091
public void testClass() {
9192
TypeDeclSnippet sn = (TypeDeclSnippet) assertSnippet("class C {}",
9293
SubKind.CLASS_SUBKIND);
93-
assertEquals(sn.name(), "C");
94+
assertEquals("C", sn.name());
9495
sn = (TypeDeclSnippet) assertSnippet("enum EE {A, B , C}",
9596
SubKind.ENUM_SUBKIND);
9697
}
9798

99+
@Test
98100
public void testMethod() {
99101
MethodSnippet sn = (MethodSnippet) assertSnippet("int m(int x) { return x + x; }",
100102
SubKind.METHOD_SUBKIND);
101-
assertEquals(sn.name(), "m");
102-
assertEquals(sn.signature(), "(int)int");
103+
assertEquals("m", sn.name());
104+
assertEquals("(int)int", sn.signature());
103105
}
104106

107+
@Test
105108
public void testVar() {
106109
VarSnippet sn = (VarSnippet) assertSnippet("int i;",
107110
SubKind.VAR_DECLARATION_SUBKIND);
108-
assertEquals(sn.name(), "i");
109-
assertEquals(sn.typeName(), "int");
111+
assertEquals("i", sn.name());
112+
assertEquals("int", sn.typeName());
110113
sn = (VarSnippet) assertSnippet("int jj = 6;",
111114
SubKind.VAR_DECLARATION_WITH_INITIALIZER_SUBKIND);
112115
sn = (VarSnippet) assertSnippet("2 + 2",
113116
SubKind.TEMP_VAR_EXPRESSION_SUBKIND);
114117
}
115118

119+
@Test
116120
public void testExpression() {
117121
state.eval("int aa = 10;");
118122
ExpressionSnippet sn = (ExpressionSnippet) assertSnippet("aa",
119123
SubKind.VAR_VALUE_SUBKIND);
120-
assertEquals(sn.name(), "aa");
121-
assertEquals(sn.typeName(), "int");
124+
assertEquals("aa", sn.name());
125+
assertEquals("int", sn.typeName());
122126
sn = (ExpressionSnippet) assertSnippet("aa;",
123127
SubKind.VAR_VALUE_SUBKIND);
124-
assertEquals(sn.name(), "aa");
125-
assertEquals(sn.typeName(), "int");
128+
assertEquals("aa", sn.name());
129+
assertEquals("int", sn.typeName());
126130
sn = (ExpressionSnippet) assertSnippet("aa = 99",
127131
SubKind.ASSIGNMENT_SUBKIND);
128132
}
129133

134+
@Test
130135
public void testStatement() {
131136
StatementSnippet sn = (StatementSnippet) assertSnippet("System.out.println(33)",
132137
SubKind.STATEMENT_SUBKIND);
133138
sn = (StatementSnippet) assertSnippet("if (true) System.out.println(33);",
134139
SubKind.STATEMENT_SUBKIND);
135140
}
136141

142+
@Test
137143
public void testErroneous() {
138144
ErroneousSnippet sn = (ErroneousSnippet) assertSnippet("+++",
139145
SubKind.UNKNOWN_SUBKIND);

test/langtools/jdk/jshell/BadExecutionControlSpecTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
2929
* jdk.compiler/com.sun.tools.javac.main
3030
* jdk.jdeps/com.sun.tools.javap
3131
* jdk.jshell/jdk.internal.jshell.tool
32-
* @run testng BadExecutionControlSpecTest
32+
* @run junit BadExecutionControlSpecTest
3333
*/
3434

3535
import java.io.ByteArrayInputStream;
@@ -38,12 +38,11 @@
3838
import java.io.PrintStream;
3939
import java.util.Collections;
4040
import java.util.List;
41-
import org.testng.annotations.Test;
4241
import jdk.jshell.spi.ExecutionControl;
4342
import jdk.jshell.spi.ExecutionEnv;
44-
import static org.testng.Assert.fail;
43+
import static org.junit.jupiter.api.Assertions.fail;
44+
import org.junit.jupiter.api.Test;
4545

46-
@Test
4746
public class BadExecutionControlSpecTest {
4847
private static void assertIllegal(String spec) throws Throwable {
4948
try {
@@ -80,13 +79,15 @@ public void closeDown() {
8079
}
8180
}
8281

82+
@Test
8383
public void syntaxTest() throws Throwable {
8484
assertIllegal(":launch(true)");
8585
assertIllegal("jdi:launch(true");
8686
assertIllegal("jdi:launch(true)$");
8787
assertIllegal("jdi:,");
8888
}
8989

90+
@Test
9091
public void notFoundTest() throws Throwable {
9192
assertIllegal("fruitbats");
9293
assertIllegal("jdi:baz(true)");

test/langtools/jdk/jshell/ClassMembersTest.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
2626
* @bug 8139829
2727
* @summary Test access to members of user defined class.
2828
* @build KullaTesting TestingInputStream ExpectedDiagnostic
29-
* @run testng/timeout=600 ClassMembersTest
29+
* @run junit/timeout=600 ClassMembersTest
3030
*/
3131

3232
import java.lang.annotation.RetentionPolicy;
@@ -36,22 +36,26 @@
3636
import javax.tools.Diagnostic;
3737

3838
import jdk.jshell.SourceCodeAnalysis;
39-
import org.testng.annotations.DataProvider;
40-
import org.testng.annotations.Test;
41-
import org.testng.annotations.BeforeMethod;
4239
import jdk.jshell.TypeDeclSnippet;
4340
import static jdk.jshell.Snippet.Status.OVERWRITTEN;
4441
import static jdk.jshell.Snippet.Status.VALID;
42+
import org.junit.jupiter.api.BeforeEach;
43+
import org.junit.jupiter.api.Test;
44+
import org.junit.jupiter.api.TestInstance;
45+
import org.junit.jupiter.params.ParameterizedTest;
46+
import org.junit.jupiter.params.provider.MethodSource;
4547

48+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
4649
public class ClassMembersTest extends KullaTesting {
4750

48-
@BeforeMethod
51+
@BeforeEach
4952
@Override
5053
public void setUp() {
5154
setUp(builder -> builder.executionEngine("local"));
5255
}
5356

54-
@Test(dataProvider = "memberTestCase")
57+
@ParameterizedTest
58+
@MethodSource("memberTestCaseGenerator")
5559
public void memberTest(AccessModifier accessModifier, CodeChunk codeChunk, Static isStaticMember, Static isStaticReference) {
5660
MemberTestCase testCase = new MemberTestCase(accessModifier, codeChunk, isStaticMember, isStaticReference);
5761
assertEval(testCase.generateSource());
@@ -78,7 +82,8 @@ private List<String> parseCode(String input) {
7882
return list;
7983
}
8084

81-
@Test(dataProvider = "memberTestCase")
85+
@ParameterizedTest
86+
@MethodSource("memberTestCaseGenerator")
8287
public void extendsMemberTest(AccessModifier accessModifier, CodeChunk codeChunk, Static isStaticMember, Static isStaticReference) {
8388
MemberTestCase testCase = new ExtendsMemberTestCase(accessModifier, codeChunk, isStaticMember, isStaticReference);
8489
String input = testCase.generateSource();
@@ -151,7 +156,8 @@ public void enumTest() {
151156
new ExpectedDiagnostic("compiler.err.non-static.cant.be.ref", 0, 8, 1, -1, -1, Diagnostic.Kind.ERROR));
152157
}
153158

154-
@Test(dataProvider = "retentionPolicyTestCase")
159+
@ParameterizedTest
160+
@MethodSource("retentionPolicyTestCaseGenerator")
155161
public void annotationTest(RetentionPolicy policy) {
156162
assertEval("import java.lang.annotation.*;");
157163
String annotationSource =
@@ -174,7 +180,6 @@ public void annotationTest(RetentionPolicy policy) {
174180
assertEval("C.Inner.class.getAnnotationsByType(A.class).length > 0;", isRuntimeVisible);
175181
}
176182

177-
@DataProvider(name = "retentionPolicyTestCase")
178183
public Object[][] retentionPolicyTestCaseGenerator() {
179184
List<Object[]> list = new ArrayList<>();
180185
for (RetentionPolicy policy : RetentionPolicy.values()) {
@@ -183,7 +188,6 @@ public Object[][] retentionPolicyTestCaseGenerator() {
183188
return list.toArray(new Object[list.size()][]);
184189
}
185190

186-
@DataProvider(name = "memberTestCase")
187191
public Object[][] memberTestCaseGenerator() {
188192
List<Object[]> list = new ArrayList<>();
189193
for (AccessModifier accessModifier : AccessModifier.values()) {

test/langtools/jdk/jshell/ClassPathTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -30,20 +30,20 @@
3030
* @library /tools/lib
3131
* @build toolbox.ToolBox toolbox.JarTask toolbox.JavacTask
3232
* @build KullaTesting TestingInputStream Compiler
33-
* @run testng ClassPathTest
33+
* @run junit ClassPathTest
3434
*/
3535

3636
import java.nio.file.Path;
3737
import java.nio.file.Paths;
3838

39-
import org.testng.annotations.Test;
39+
import org.junit.jupiter.api.Test;
4040

41-
@Test
4241
public class ClassPathTest extends KullaTesting {
4342

4443
private final Compiler compiler = new Compiler();
4544
private final Path outDir = Paths.get("class_path_test");
4645

46+
@Test
4747
public void testDirectory() {
4848
compiler.compile(outDir, "package pkg; public class TestDirectory { }");
4949
assertDeclareFail("import pkg.TestDirectory;", "compiler.err.doesnt.exist");
@@ -52,6 +52,7 @@ public void testDirectory() {
5252
assertEval("new pkg.TestDirectory();");
5353
}
5454

55+
@Test
5556
public void testJar() {
5657
compiler.compile(outDir, "package pkg; public class TestJar { }");
5758
String jarName = "test.jar";
@@ -62,6 +63,7 @@ public void testJar() {
6263
assertEval("new pkg.TestJar();");
6364
}
6465

66+
@Test
6567
public void testAmbiguousDirectory() {
6668
Path p1 = outDir.resolve("dir1");
6769
compiler.compile(p1,
@@ -82,6 +84,7 @@ public void testAmbiguousDirectory() {
8284
assertEval("new p.TestAmbiguous();", "first");
8385
}
8486

87+
@Test
8588
public void testAmbiguousJar() {
8689
Path p1 = outDir.resolve("dir1");
8790
compiler.compile(p1,
@@ -104,11 +107,13 @@ public void testAmbiguousJar() {
104107
assertEval("new p.TestAmbiguous();", "first");
105108
}
106109

110+
@Test
107111
public void testEmptyClassPath() {
108112
addToClasspath("");
109113
assertEval("new java.util.ArrayList<String>();");
110114
}
111115

116+
@Test
112117
public void testUnknown() {
113118
addToClasspath(compiler.getPath(outDir.resolve("UNKNOWN")));
114119
assertDeclareFail("new Unknown();", "compiler.err.cant.resolve.location");

0 commit comments

Comments
 (0)