JDK 11 RFR of JDK-8196623: Update JavaBaseTest.java to be version agnostic

joe darcy joe.darcy at oracle.com
Fri Feb 2 00:42:38 UTC 2018


Hello,

Hopefully the final langtools test hardening needed before the version 
upgrade to 11, please review the patch below to address:

     JDK-8196623: Update JavaBaseTest.java to be version agnostic

Instead of explicitly passing "9", "10", and $SPEC_NUMBER of later 
release, "9" and "10" and used for the --release option and the 
--release release option is omitted for the current value. For some 
time, javac defaults to the (roughly) the current release if no -source 
or --release option is given.

Thanks,

-Joe

diff -r b0a54e2ba484 test/langtools/tools/javac/modules/JavaBaseTest.java
--- a/test/langtools/tools/javac/modules/JavaBaseTest.java    Thu Feb 01 
09:16:03 2018 -0800
+++ b/test/langtools/tools/javac/modules/JavaBaseTest.java    Thu Feb 01 
16:40:39 2018 -0800
@@ -23,7 +23,7 @@

  /**
   * @test
- * @bug 8193125
+ * @bug 8193125 8196623
   * @summary test modifiers with java.base
   * @library /tools/lib
   * @modules
@@ -66,10 +66,7 @@
          List.of("static", "transitive")
      );

-    final String specVersion = 
System.getProperty("java.specification.version");
-    final List<String> targets = specVersion.equals("10")
-            ? List.of("9", "10")
-            : List.of("9", "10", specVersion);
+    final List<String> targets = List.of("9", "10", "current");

      enum Mode { SOURCE, CLASS };

@@ -121,13 +118,18 @@
          Path modules = Files.createDirectories(base.resolve("modules"));
          boolean expectOK = target.equals("9");

-        String log = new JavacTask(tb)
-                .outdir(modules)
-                .options("-XDrawDiagnostics", "--release", target)
-                .files(tb.findJavaFiles(src))
-                .run(expectOK ? Task.Expect.SUCCESS : Task.Expect.FAIL)
-                .writeAll()
-                .getOutput(Task.OutputKind.DIRECT);
+        JavacTask jct = new JavacTask(tb)
+            .outdir(modules);
+
+        if (target.equals("current"))
+            jct.options("-XDrawDiagnostics");
+        else
+            jct.options("-XDrawDiagnostics", "--release", target);
+
+        String log = jct.files(tb.findJavaFiles(src))
+            .run(expectOK ? Task.Expect.SUCCESS : Task.Expect.FAIL)
+            .writeAll()
+            .getOutput(Task.OutputKind.DIRECT);

          if (!expectOK) {
              boolean foundErrorMessage = false;
@@ -189,12 +191,16 @@
                  "module m { requires java.base; }");
          Path modules1 = 
Files.createDirectories(base.resolve("interim-modules"));

-        new JavacTask(tb)
-                .outdir(modules1)
-                .options("--release", target)
-                .files(tb.findJavaFiles(src1))
-                .run(Task.Expect.SUCCESS)
-                .writeAll();
+        JavacTask jct = new JavacTask(tb)
+            .outdir(modules1);
+
+        if (!target.equals("current")) {
+            jct.options("--release", target);
+        }
+
+        jct.files(tb.findJavaFiles(src1))
+            .run(Task.Expect.SUCCESS)
+            .writeAll();

          ClassFile cf1 = 
ClassFile.read(modules1.resolve("module-info.class"));




More information about the compiler-dev mailing list