8309134: Augment test/langtools/tools/javac/versions/Versions.java for JDK 21 language changes

Reviewed-by: jjg
This commit is contained in:
Joe Darcy 2023-05-30 21:58:50 +00:00
parent de7fd1c306
commit cb40db052c

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -89,7 +89,7 @@ public class Versions {
EIGHTEEN(false, "62.0", "18", Versions::checksrc18), EIGHTEEN(false, "62.0", "18", Versions::checksrc18),
NINETEEN(false, "63.0", "19", Versions::checksrc19), NINETEEN(false, "63.0", "19", Versions::checksrc19),
TWENTY(false, "64.0", "20", Versions::checksrc20), TWENTY(false, "64.0", "20", Versions::checksrc20),
TWENTY_ONE(false,"65.0", "21", Versions::checksrc20); TWENTY_ONE(false,"65.0", "21", Versions::checksrc21);
private final boolean dotOne; private final boolean dotOne;
private final String classFileVer; private final String classFileVer;
@ -248,85 +248,97 @@ public class Versions {
protected void checksrc8(List<String> args) { protected void checksrc8(List<String> args) {
printargs("checksrc8", args); printargs("checksrc8", args);
expectedPass(args, List.of("New7.java", "New8.java")); expectedPass(args, List.of("New7.java", "New8.java"));
expectedFail(args, List.of("New10.java")); expectedFail(args, List.of("New10.java", "New11.java", "New14.java", "New15.java",
"New16.java", "New17.java", "New21.java"));
} }
protected void checksrc9(List<String> args) { protected void checksrc9(List<String> args) {
printargs("checksrc9", args); printargs("checksrc9", args);
expectedPass(args, List.of("New7.java", "New8.java")); expectedPass(args, List.of("New7.java", "New8.java"));
expectedFail(args, List.of("New10.java")); expectedFail(args, List.of("New10.java", "New11.java", "New14.java", "New15.java",
"New16.java", "New17.java", "New21.java"));
} }
protected void checksrc10(List<String> args) { protected void checksrc10(List<String> args) {
printargs("checksrc10", args); printargs("checksrc10", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java")); expectedPass(args, List.of("New7.java", "New8.java", "New10.java"));
expectedFail(args, List.of("New11.java")); expectedFail(args, List.of("New11.java", "New14.java", "New15.java",
"New16.java", "New17.java", "New21.java"));
} }
protected void checksrc11(List<String> args) { protected void checksrc11(List<String> args) {
printargs("checksrc11", args); printargs("checksrc11", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java")); expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java"));
expectedFail(args, List.of("New14.java")); expectedFail(args, List.of("New14.java", "New15.java", "New16.java", "New17.java", "New21.java"));
} }
protected void checksrc12(List<String> args) { protected void checksrc12(List<String> args) {
printargs("checksrc12", args); printargs("checksrc12", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java")); expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java"));
expectedFail(args, List.of("New14.java")); expectedFail(args, List.of("New14.java", "New15.java", "New16.java", "New17.java", "New21.java"));
} }
protected void checksrc13(List<String> args) { protected void checksrc13(List<String> args) {
printargs("checksrc13", args); printargs("checksrc13", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java")); expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java"));
expectedFail(args, List.of("New14.java")); expectedFail(args, List.of("New14.java", "New15.java", "New16.java", "New17.java", "New21.java"));
} }
protected void checksrc14(List<String> args) { protected void checksrc14(List<String> args) {
printargs("checksrc14", args); printargs("checksrc14", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java")); "New14.java"));
expectedFail(args, List.of("New15.java")); expectedFail(args, List.of("New15.java", "New16.java", "New17.java", "New21.java"));
} }
protected void checksrc15(List<String> args) { protected void checksrc15(List<String> args) {
printargs("checksrc15", args); printargs("checksrc15", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java")); "New14.java", "New15.java"));
expectedFail(args, List.of("New16.java")); expectedFail(args, List.of("New16.java", "New17.java", "New21.java"));
} }
protected void checksrc16(List<String> args) { protected void checksrc16(List<String> args) {
printargs("checksrc16", args); printargs("checksrc16", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java", "New16.java")); "New14.java", "New15.java", "New16.java"));
expectedFail(args, List.of("New17.java")); expectedFail(args, List.of("New17.java", "New21.java"));
} }
protected void checksrc17(List<String> args) { protected void checksrc17(List<String> args) {
printargs("checksrc17", args); printargs("checksrc17", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java", "New16.java", "New17.java")); "New14.java", "New15.java", "New16.java", "New17.java"));
// Add expectedFail after new language features added in a later release. expectedFail(args, List.of("New21.java"));
} }
protected void checksrc18(List<String> args) { protected void checksrc18(List<String> args) {
printargs("checksrc18", args); printargs("checksrc18", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java", "New16.java", "New17.java")); "New14.java", "New15.java", "New16.java", "New17.java"));
// Add expectedFail after new language features added in a later release. expectedFail(args, List.of("New21.java"));
} }
protected void checksrc19(List<String> args) { protected void checksrc19(List<String> args) {
printargs("checksrc19", args); printargs("checksrc19", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java", "New16.java", "New17.java")); "New14.java", "New15.java", "New16.java", "New17.java"));
// Add expectedFail after new language features added in a later release. expectedFail(args, List.of("New21.java"));
} }
protected void checksrc20(List<String> args) { protected void checksrc20(List<String> args) {
printargs("checksrc20", args); printargs("checksrc20", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java", expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java", "New16.java", "New17.java")); "New14.java", "New15.java", "New16.java", "New17.java"));
expectedFail(args, List.of("New21.java"));
}
protected void checksrc21(List<String> args) {
printargs("checksrc21", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java", "New16.java", "New17.java",
"New21.java"));
// Add expectedFail after new language features added in a later release. // Add expectedFail after new language features added in a later release.
} }
@ -384,7 +396,6 @@ public class Versions {
failedCases++; failedCases++;
} }
} }
protected void fail(List<String> args) { protected void fail(List<String> args) {
@ -569,6 +580,24 @@ public class Versions {
} }
""" """
); );
/*
* Create a file with a new feature in 21, not in 20 : pattern matching for switch
*/
writeSourceFile("New21.java",
"""
public class New21 {
public static void main(String... args) {
Object o = new Object(){};
System.out.println(switch (o) {
case Integer i -> String.format("%d", i);
default -> o.toString();
});
}
}
"""
);
} }
protected boolean checkClassFileVersion protected boolean checkClassFileVersion