RFR [14] 8235531: Update record serialization migration tests to not use hard coded source versions

Joe Darcy joe.darcy at oracle.com
Tue Dec 10 18:07:27 UTC 2019


Looks good Chris; thanks,

-Joe

On 12/10/2019 3:08 AM, Chris Hegarty wrote:
> In preparation for the imminent arrival of 15 to jdk/jdk, this change
> replaces the hardcoded source version, used to invoke the compiler
> programmatically, with the runtime feature version, similar to
> JDK-8235514.
>
> I tested this change along side the changes for 8225361 - "Start of
> release updates for JDK 15" - and the record serialization migration
> tests pass successfully.
>
> --- a/test/jdk/java/io/Serializable/records/migration/AbstractTest.java
> +++ b/test/jdk/java/io/Serializable/records/migration/AbstractTest.java
> @@ -32,48 +32,50 @@
>   import java.net.URI;
>   import java.net.URL;
>   import java.net.URLClassLoader;
>   import java.nio.file.Path;
>   import jdk.test.lib.compiler.CompilerUtils;
>   import org.testng.annotations.BeforeTest;
>   import static org.testng.Assert.*;
>
>   /**
>    * An abstract superclass for tests that require to serialize and deserialize
>    * record-like and record classes. Can be used for determining migration and
>    * interop between record-like and record classes.
>    */
>   public class AbstractTest {
>
> +    private static final String VERSION = Integer.toString(Runtime.version().feature());
> +
>       static final String TEST_SRC = System.getProperty("test.src", ".");
>       static final String TEST_CLASSES = System.getProperty("test.classes", ".");
>       static final Path TEST_CLASSES_DIR = Path.of(TEST_CLASSES);
>
>       static final Path PLAIN_SRC_DIR = Path.of(TEST_SRC, "plain");
>       static final Path PLAIN_DEST_DIR = Path.of("plain");
>
>       static final Path RECORD_SRC_DIR = Path.of(TEST_SRC, "record");
>       static final Path RECORD_DEST_DIR = Path.of("record");
>
>       @BeforeTest
>       public void setup() throws IOException {
>           assertTrue(CompilerUtils.compile(PLAIN_SRC_DIR, PLAIN_DEST_DIR,
> -                   "--enable-preview", "-source", "14",
> +                   "--enable-preview", "-source", VERSION,
>                      "--class-path", TEST_CLASSES_DIR.toString()));
>
>           assertTrue(CompilerUtils.compile(RECORD_SRC_DIR, RECORD_DEST_DIR,
> -                   "--enable-preview", "-source", "14",
> +                   "--enable-preview", "-source", VERSION,
>                      "--class-path", TEST_CLASSES_DIR.toString()));
>       }
>
>       static <T> byte[] serialize(T obj) throws IOException {
>           ByteArrayOutputStream baos = new ByteArrayOutputStream();
>           ObjectOutputStream oos = new ObjectOutputStream(baos);
>           oos.writeObject(obj);
>           oos.close();
>           return baos.toByteArray();
>       }
>
>       @SuppressWarnings("unchecked")
>       static <T> T deserializeAsPlain(byte[] streamBytes)
>           throws IOException, ClassNotFoundException
>       {
>
>
> -Chris.
>


More information about the core-libs-dev mailing list