JDK 14 RFR of JDK-8235514: Update record serialization tests to not use hard coded source versions

Joe Darcy joe.darcy at oracle.com
Fri Dec 6 21:15:44 UTC 2019


Hello,

Please review the patch below to update to the records serialization 
tests to avoid hard-coded values for the -source argument during 
programmatic invocations of the compiler.

Thanks,

-Joe

diff -r 3b9efbac1b50 
test/jdk/java/io/Serializable/records/BadCanonicalCtrTest.java
--- a/test/jdk/java/io/Serializable/records/BadCanonicalCtrTest.java Fri 
Dec 06 12:13:25 2019 -0800
+++ b/test/jdk/java/io/Serializable/records/BadCanonicalCtrTest.java Fri 
Dec 06 13:13:45 2019 -0800
@@ -59,6 +59,7 @@
   * constructor cannot be found during deserialization.
   */
  public class BadCanonicalCtrTest {
+    private static final String VERSION = 
Integer.toString(Runtime.version().feature());

      // ClassLoader for creating instances of the records to test with.
      ClassLoader goodRecordClassLoader;
@@ -79,7 +80,7 @@
          {
              byte[] byteCode = InMemoryJavaCompiler.compile("R1",
                      "public record R1 () implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              goodRecordClassLoader = new ByteCodeLoader("R1", byteCode, 
BadCanonicalCtrTest.class.getClassLoader());
              byte[] bc1 = removeConstructor(byteCode);
              missingCtrClassLoader = new ByteCodeLoader("R1", bc1, 
BadCanonicalCtrTest.class.getClassLoader());
@@ -89,7 +90,7 @@
          {
              byte[] byteCode = InMemoryJavaCompiler.compile("R2",
                      "public record R2 (int x, int y) implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              goodRecordClassLoader = new ByteCodeLoader("R2", byteCode, 
goodRecordClassLoader);
              byte[] bc1 = removeConstructor(byteCode);
              missingCtrClassLoader = new ByteCodeLoader("R2", bc1, 
missingCtrClassLoader);
@@ -101,7 +102,7 @@
                      "public record R3 (long l) implements 
java.io.Externalizable {" +
                      "    public void 
writeExternal(java.io.ObjectOutput out) { }" +
                      "    public void readExternal(java.io.ObjectInput 
in)    { } }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              goodRecordClassLoader = new ByteCodeLoader("R3", byteCode, 
goodRecordClassLoader);
              byte[] bc1 = removeConstructor(byteCode);
              missingCtrClassLoader = new ByteCodeLoader("R3", bc1, 
missingCtrClassLoader);
diff -r 3b9efbac1b50 
test/jdk/java/io/Serializable/records/ProhibitedMethods.java
--- a/test/jdk/java/io/Serializable/records/ProhibitedMethods.java Fri 
Dec 06 12:13:25 2019 -0800
+++ b/test/jdk/java/io/Serializable/records/ProhibitedMethods.java Fri 
Dec 06 13:13:45 2019 -0800
@@ -69,6 +69,7 @@
   * record objects.
   */
  public class ProhibitedMethods {
+    private static final String VERSION = 
Integer.toString(Runtime.version().feature());

      public interface ThrowingExternalizable extends Externalizable {
          default void writeExternal(ObjectOutput out) {
@@ -106,7 +107,7 @@
          {
              byte[] byteCode = InMemoryJavaCompiler.compile("Foo",
                      "public record Foo () implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              byteCode = addWriteObject(byteCode);
              byteCode = addReadObject(byteCode);
              byteCode = addReadObjectNoData(byteCode);
@@ -115,7 +116,7 @@
          {
              byte[] byteCode = InMemoryJavaCompiler.compile("Bar",
                      "public record Bar (int x, int y) implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              byteCode = addWriteObject(byteCode);
              byteCode = addReadObject(byteCode);
              byteCode = addReadObjectNoData(byteCode);
@@ -125,7 +126,7 @@
              byte[] byteCode = InMemoryJavaCompiler.compile("Baz",
                      "import java.io.Serializable;" +
                      "public record Baz<U extends Serializable,V 
extends Serializable>(U u, V v) implements Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              byteCode = addWriteObject(byteCode);
              byteCode = addReadObject(byteCode);
              byteCode = addReadObjectNoData(byteCode);
diff -r 3b9efbac1b50 
test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java
--- 
a/test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java 
Fri Dec 06 12:13:25 2019 -0800
+++ 
b/test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java 
Fri Dec 06 13:13:45 2019 -0800
@@ -64,6 +64,7 @@
   * Checks that the serialPersistentFields declaration is effectively 
ignored.
   */
  public class SerialPersistentFieldsTest {
+    private static final String VERSION = 
Integer.toString(Runtime.version().feature());

      ClassLoader serializableRecordLoader;

@@ -85,7 +86,7 @@
          {  // R1
              byte[] byteCode = InMemoryJavaCompiler.compile("R1",
                      "public record R1 () implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              ObjectStreamField[] serialPersistentFields = {
                      new ObjectStreamField("s", String.class),
                      new ObjectStreamField("i", int.class),
@@ -98,7 +99,7 @@
          {  // R2
              byte[] byteCode = InMemoryJavaCompiler.compile("R2",
                      "public record R2 (int x) implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              ObjectStreamField[] serialPersistentFields = {
                      new ObjectStreamField("s", String.class)
              };
@@ -108,7 +109,7 @@
          {  // R3
              byte[] byteCode = InMemoryJavaCompiler.compile("R3",
                      "public record R3 (int x, int y) implements 
java.io.Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              ObjectStreamField[] serialPersistentFields = new 
ObjectStreamField[0];
              byteCode = addSerialPersistentFields(byteCode, 
serialPersistentFields);
              serializableRecordLoader = new ByteCodeLoader("R3", 
byteCode, serializableRecordLoader);
@@ -117,7 +118,7 @@
              byte[] byteCode = InMemoryJavaCompiler.compile("R4",
                      "import java.io.Serializable;" +
                      "public record R4<U extends Serializable,V extends 
Serializable>(U u, V v) implements Serializable { }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              ObjectStreamField[] serialPersistentFields = {
                      new ObjectStreamField("v", String.class)
              };
@@ -134,7 +135,7 @@
                      "    @Override public void 
readExternal(ObjectInput in) {\n" +
                      "        throw new AssertionError(\"should not 
reach here\");\n" +
                      "    }  }",
-                    "--enable-preview", "-source", "14");
+                    "--enable-preview", "-source", VERSION);
              ObjectStreamField[] serialPersistentFields = {
                      new ObjectStreamField("v", String.class)
              };



More information about the core-libs-dev mailing list