Test ReleaseOptionCurrent.java writes ReleaseOption.class in the source directory

B. Blaser bsrbnd at gmail.com
Thu May 17 12:39:09 UTC 2018


Hi,

Test ReleaseOptionCurrent.java writes ReleaseOption.class in the
source directory.
Next is a quick fix for this.
Any feedback is welcome.

Cheers,
Bernard


diff -r 8e4fcfb4cfe4
test/langtools/tools/javac/options/release/ReleaseOptionCurrent.java
--- a/test/langtools/tools/javac/options/release/ReleaseOptionCurrent.java
   Thu May 17 10:32:26 2018 +0200
+++ b/test/langtools/tools/javac/options/release/ReleaseOptionCurrent.java
   Thu May 17 14:17:52 2018 +0200
@@ -25,10 +25,14 @@
  * @test
  * @bug 8202387
  * @summary Verify that javac can handle --release <current>
+ * @library /tools/lib
  * @modules jdk.compiler/com.sun.tools.javac.code
  */

 import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.List;
 import javax.tools.JavaCompiler;
@@ -38,18 +42,29 @@

 import com.sun.tools.javac.code.Source;

+import toolbox.ToolBox;
+
 public class ReleaseOptionCurrent {
     public static void main(String... args) throws IOException {
         new ReleaseOptionCurrent().run();
     }

+    private final ToolBox tb = new ToolBox();
+
     void run() throws IOException {
         String lineSep = System.getProperty("line.separator");
+        Path classes = Paths.get("classes");
+
+        if (Files.exists(classes)) {
+            tb.cleanDirectory(classes);
+        } else {
+            Files.createDirectories(classes);
+        }
         JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
         try (StandardJavaFileManager fm =
compiler.getStandardFileManager(null, null, null)) {
             Iterable<? extends JavaFileObject> input =

fm.getJavaFileObjects(System.getProperty("test.src") +
"/ReleaseOption.java");
-            List<String> options = Arrays.asList("--release",
Source.DEFAULT.name);
+            List<String> options = Arrays.asList("-d",
classes.toString(), "--release", Source.DEFAULT.name);

             boolean result = compiler.getTask(null, fm, null,
options, null, input).call();
             if (!result) {


More information about the compiler-dev mailing list