JDK 14 RFR of JDK-8235514: Update record serialization tests to not use hard coded source versions
Lance Andersen
lance.andersen at oracle.com
Fri Dec 6 21:16:58 UTC 2019
+1
> On Dec 6, 2019, at 4:15 PM, Joe Darcy <joe.darcy at oracle.com> wrote:
>
> 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)
> };
>
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
<http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
<http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>
More information about the amber-dev
mailing list