While working on some record serialization changes recently, I noticed that we 
don’t have any coverage for local records. Here is a simple extension to an 
existing records test.

diff -r 4e186efa6cbf test/jdk/java/io/Serializable/records/BasicRecordSer.java
--- a/test/jdk/java/io/Serializable/records/BasicRecordSer.java Thu Jun 25 
09:54:19 2020 +0100
+++ b/test/jdk/java/io/Serializable/records/BasicRecordSer.java Thu Jun 25 
15:40:13 2020 +0100
@@ -132,6 +132,20 @@
         assertEquals(objDeserialized, objToSerialize);
     }
 
+    /** Tests serializing and deserializing of local records. */
+    @Test
+    public void testLocalRecord() throws Exception {
+        out.println("\n---");
+        record Point(int x, int y) implements Serializable { }
+        record Rectangle(Point bottomLeft, Point topRight) implements 
Serializable { }
+        var objToSerialize = new Rectangle(new Point(0, 1), new Point (5, 6));
+        out.println("serializing : " + objToSerialize);
+        var objDeserialized = serializeDeserialize(objToSerialize);
+        out.println("deserialized: " + objDeserialized);
+        assertEquals(objToSerialize, objDeserialized);
+        assertEquals(objDeserialized, objToSerialize);
+    }
+
     /** Tests back references of Serializable record objects in the stream. */
     @Test
     public void testSerializableBackRefs() throws Exception {

-Chris.

Reply via email to