8047675: tools/javac/defaultMethods/Assertions.java fails if run with -enableassertions (-ea)
authorjlahoda
Thu, 04 Sep 2014 08:49:20 +0200
changeset 26392 2bda2002e2f2
parent 26391 c775a09a4faf
child 26393 290847867ded
child 26527 e422a50bf4f9
8047675: tools/javac/defaultMethods/Assertions.java fails if run with -enableassertions (-ea) Summary: Using ToolBox to start new Java processes, to avoid passing default VM options to the newly started process. Reviewed-by: jjg
langtools/test/tools/javac/defaultMethods/Assertions.java
langtools/test/tools/javac/defaultMethods/AssertionsTest.java
langtools/test/tools/lib/ToolBox.java
--- a/langtools/test/tools/javac/defaultMethods/Assertions.java	Thu Sep 04 08:48:29 2014 +0200
+++ b/langtools/test/tools/javac/defaultMethods/Assertions.java	Thu Sep 04 08:49:20 2014 +0200
@@ -26,20 +26,6 @@
 import java.util.HashSet;
 import java.util.Set;
 
-/*
- * @test
- * @bug 8025141
- * @ignore 8047675 test fails if run with assertions enabled in jtreg
- * @summary Interfaces must not contain non-public fields, ensure $assertionsDisabled
- *          is not generated into an interface
- * @compile Assertions.java
- * @run main/othervm -da test.Assertions
- * @run main/othervm -ea:test.Assertions test.Assertions Inner
- * @run main/othervm -ea:test.Outer test.Assertions Outer
- * @run main/othervm -ea:test.Another test.Assertions Another.Inner
- * @run main/othervm -ea:test... test.Assertions Inner Outer Another.Inner
- */
-
 public class Assertions {
     interface Inner {
         default void testInner() {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/defaultMethods/AssertionsTest.java	Thu Sep 04 08:49:20 2014 +0200
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8025141
+ * @summary Interfaces must not contain non-public fields, ensure $assertionsDisabled
+ *          is not generated into an interface
+ * @library /tools/lib
+ * @build ToolBox Assertions AssertionsTest
+ * @run main AssertionsTest -da
+ * @run main AssertionsTest -ea:test.Assertions Inner
+ * @run main AssertionsTest -ea:test.Outer Outer
+ * @run main AssertionsTest -ea:test.Another Another.Inner
+ * @run main AssertionsTest -ea:test... Inner Outer Another.Inner
+ */
+
+import java.util.Arrays;
+
+public class AssertionsTest {
+
+    public static void main(String... args) throws Exception {
+        String testClasses = System.getProperty("test.classes");
+        ToolBox tb = new ToolBox();
+        tb.new JavaTask().classpath(testClasses)
+                         .vmOptions(args[0])
+                         .className("test.Assertions")
+                         .classArgs(Arrays.copyOfRange(args, 1, args.length))
+                         .includeStandardOptions(false)
+                         .run(ToolBox.Expect.SUCCESS)
+                         .writeAll();
+    }
+
+}
--- a/langtools/test/tools/lib/ToolBox.java	Thu Sep 04 08:48:29 2014 +0200
+++ b/langtools/test/tools/lib/ToolBox.java	Thu Sep 04 08:49:20 2014 +0200
@@ -1568,6 +1568,20 @@
         }
 
         /**
+         * Sets whether or not the standard VM and java options for the test should be passed
+         * to the new VM instance. If this method is not called, the default behavior is that
+         * the options will be passed to the new VM instance.
+         *
+         * @param includeStandardOptions whether or not the standard VM and java options for
+         *                               the test should be passed to the new VM instance.
+         * @return this task object
+         */
+        public JavaTask includeStandardOptions(boolean includeStandardOptions) {
+            this.includeStandardOptions = includeStandardOptions;
+            return this;
+        }
+
+        /**
          * {@inheritDoc}
          * @return the name "java"
          */