--- old/test/tools/javadoc/6227454/Test.java Fri Jan 22 12:28:58 2016
+++ /dev/null Fri Jan 22 12:28:58 2016
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2011, 2015, 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 6227454
- * @summary package.html and overview.html may not be read fully
- * @modules jdk.javadoc
- */
-
-import java.io.*;
-
-import com.sun.javadoc.Doclet;
-import com.sun.javadoc.RootDoc;
-
-public class Test extends Doclet {
- public static void main(String... args) throws Exception {
- new Test().run();
- }
-
- void run() throws Exception {
- test("
ABC XYZ");
- test("ABC XYZ");
- test("ABC XYZ");
- test("ABC XYZ");
- test("ABC XYZ");
- test(" ABC XYZABC XYZ ", "Close body tag missing from HTML");
- test(" ABC XYZ ", "Body tag missing from HTML");
- test("ABC" + bigText(8192, 40) + "XYZ");
-
- if (errors > 0)
- throw new Exception(errors + " errors occurred");
- }
-
- void test(String body) throws IOException {
- test(body, null);
- }
-
- void test(String body, String expectError) throws IOException {
- String docType = "";
- String headTag = "Title ";
- String text = docType + "" + headTag + body + "";
- testNum++;
- System.err.println("test " + testNum);
- File file = writeFile("overview" + testNum + ".html", text);
- String thisClassName = Test.class.getName();
- File testSrc = new File(System.getProperty("test.src"));
- String[] args = {
- "-bootclasspath",
- System.getProperty("java.class.path")
- + File.pathSeparator
- + System.getProperty("sun.boot.class.path"),
- "-classpath", ".",
- "-package",
- "-overview", file.getPath(),
- new File(testSrc, thisClassName + ".java").getPath()
- };
-
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
- int rc = com.sun.tools.javadoc.Main.execute(
- "javadoc",
- pw, pw, pw,
- thisClassName,
- args);
- pw.close();
- String out = sw.toString();
- if (!out.isEmpty())
- System.err.println(out);
- System.err.println("javadoc exit: rc=" + rc);
-
- if (expectError == null) {
- if (rc != 0)
- error("unexpected exit from javadoc; rc:" + rc);
- } else {
- if (!out.contains(expectError))
- error("expected error text not found: " + expectError);
- }
- }
-
- String bigText(int lines, int lineLength) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < lineLength; i++)
- sb.append(String.valueOf(i % 10));
- sb.append("\n");
- String line = sb.toString();
- sb.setLength(0);
- for (int i = 0; i < lines; i++)
- sb.append(line);
- return sb.toString();
- }
-
- File writeFile(String path, String body) throws IOException {
- File f = new File(path);
- FileWriter out = new FileWriter(f);
- try {
- out.write(body);
- } finally {
- out.close();
- }
- return f;
- }
-
- void error(String msg) {
- System.err.println("Error: " + msg);
- errors++;
- }
-
- int testNum;
- int errors;
-
- public static boolean start(RootDoc root) {
- String text = root.commentText();
- if (text.length() < 64)
- System.err.println("text: '" + text + "'");
- else
- System.err.println("text: '"
- + text.substring(0, 20)
- + "..."
- + text.substring(text.length() - 20)
- + "'");
- return text.startsWith("ABC") && text.endsWith("XYZ");
- }
-}
--- /dev/null Fri Jan 22 12:28:58 2016
+++ new/test/jdk/javadoc/tool/6227454/Test.java Fri Jan 22 12:28:58 2016
@@ -0,0 +1,234 @@
+/*
+ * Copyright (c) 2011, 2016, 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 6227454
+ * @summary package.html and overview.html may not be read fully
+ * @modules jdk.javadoc
+ */
+
+import java.io.*;
+import java.util.Arrays;
+
+import java.util.HashSet;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Set;
+
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.Element;
+
+import com.sun.source.doctree.DocCommentTree;
+import com.sun.source.util.DocTrees;
+import jdk.javadoc.doclet.Doclet;
+import jdk.javadoc.doclet.Reporter;
+import jdk.javadoc.doclet.DocletEnvironment;
+
+
+public class Test implements Doclet {
+ public static void main(String... args) throws Exception {
+ new Test().run();
+ }
+
+ File referenceFile = new File("Foo.java");
+
+ void run() throws Exception {
+ test("ABC XYZ");
+ test("ABC XYZ");
+ test("ABC XYZ");
+ test("ABC XYZ");
+ test("ABC XYZ");
+ test("ABC" + bigText(8192, 40) + "XYZ");
+
+ if (errors > 0)
+ throw new Exception(errors + " errors occurred");
+ }
+
+ void test(String body) throws IOException {
+ test(body, null);
+ }
+
+ void test(String body, String expectError) throws IOException {
+ if (!referenceFile.exists()) {
+ writeFile(referenceFile.getName(), "public class Foo {}");
+ }
+ String docType = "";
+ String headTag = "Title ";
+ String text = docType + "" + headTag + body + "";
+ testNum++;
+ System.err.println("test " + testNum);
+ File file = writeFile("overview" + testNum + ".html", text);
+ String thisClassName = Test.class.getName();
+ String[] args = {
+ "-bootclasspath",
+ System.getProperty("java.class.path")
+ + File.pathSeparator
+ + System.getProperty("sun.boot.class.path"),
+ "-classpath", ".",
+ "-docletpath", System.getProperty("test.classes"),
+ "-doclet", thisClassName,
+ "-package",
+ "-overview", file.getPath(),
+ "-sourcepath", ".",
+ referenceFile.getPath()
+ };
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = jdk.javadoc.internal.tool.Main.execute(args, pw);
+ pw.close();
+ String out = sw.toString();
+ if (!out.isEmpty())
+ System.err.println(out);
+ System.err.println("javadoc exit: rc=" + rc);
+
+ if (expectError == null) {
+ if (rc != 0)
+ error("unexpected exit from javadoc; rc:" + rc);
+ } else {
+ if (!out.contains(expectError))
+ error("expected error text not found: " + expectError);
+ }
+ }
+
+ String bigText(int lines, int lineLength) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < lineLength; i++)
+ sb.append(String.valueOf(i % 10));
+ sb.append("\n");
+ String line = sb.toString();
+ sb.setLength(0);
+ for (int i = 0; i < lines; i++)
+ sb.append(line);
+ return sb.toString();
+ }
+
+ File writeFile(String path, String body) throws IOException {
+ File f = new File(path);
+ FileWriter out = new FileWriter(f);
+ try {
+ out.write(body);
+ } finally {
+ out.close();
+ }
+ return f;
+ }
+
+ void error(String msg) {
+ System.err.println("Error: " + msg);
+ errors++;
+ }
+
+ int testNum;
+ int errors;
+
+ public boolean run(DocletEnvironment root) {
+ DocTrees docTrees = root.getDocTrees();
+ System.out.println("classes:" + root.getIncludedClasses());
+
+ Element klass = root.getIncludedClasses().iterator().next();
+ String text = "";
+ try {
+ DocCommentTree dcTree = docTrees.getDocCommentTree(klass, overviewpath);
+ text = dcTree.getFullBody().toString();
+ } catch (IOException ioe) {
+ throw new Error(ioe);
+ }
+
+ if (text.length() < 64)
+ System.err.println("text: '" + text + "'");
+ else
+ System.err.println("text: '"
+ + text.substring(0, 20)
+ + "..."
+ + text.substring(text.length() - 20)
+ + "'");
+ return text.startsWith("ABC") && text.endsWith("XYZ");
+ }
+
+ @Override
+ public String getName() {
+ return "Test";
+ }
+
+ private String overviewpath;
+
+ @Override
+ public Set