test/tools/javadoc/parser/7091528/T7091528.java

Thu, 31 Aug 2017 15:17:03 +0800

author
aoqi
date
Thu, 31 Aug 2017 15:17:03 +0800
changeset 2525
2eb010b6cb22
parent 2367
1737ad9ac984
parent 0
959103a6100f
permissions
-rw-r--r--

merge

aoqi@0 1 /*
aoqi@0 2 * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
aoqi@0 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 4 *
aoqi@0 5 * This code is free software; you can redistribute it and/or modify it
aoqi@0 6 * under the terms of the GNU General Public License version 2 only, as
aoqi@0 7 * published by the Free Software Foundation.
aoqi@0 8 *
aoqi@0 9 * This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 12 * version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 13 * accompanied this code).
aoqi@0 14 *
aoqi@0 15 * You should have received a copy of the GNU General Public License version
aoqi@0 16 * 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 18 *
aoqi@0 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 20 * or visit www.oracle.com if you need additional information or have any
aoqi@0 21 * questions.
aoqi@0 22 */
aoqi@0 23
aoqi@0 24 /**
aoqi@0 25 * @test
aoqi@0 26 * @bug 7091528 8029145 8037484
aoqi@0 27 * @summary ensures javadoc parses unique source files and ignores all class files
aoqi@0 28 * @compile p/C1.java p/q/C2.java
aoqi@0 29 * @run main T7091528
aoqi@0 30 */
aoqi@0 31
aoqi@0 32 import java.io.File;
aoqi@0 33 import java.io.PrintWriter;
aoqi@0 34 import java.io.StringWriter;
aoqi@0 35
aoqi@0 36 public class T7091528 {
aoqi@0 37 public static void main(String... args) {
aoqi@0 38 new T7091528().run();
aoqi@0 39 }
aoqi@0 40 void run() {
aoqi@0 41 File testSrc = new File(System.getProperty("test.src"));
aoqi@0 42 File testClasses = new File(System.getProperty("test.classes"));
aoqi@0 43 // 7091528, tests if class files are being ignored
aoqi@0 44 runTest("-d", ".",
aoqi@0 45 "-sourcepath", testClasses + File.pathSeparator + testSrc,
aoqi@0 46 "-subpackages",
aoqi@0 47 "p");
aoqi@0 48 // 8029145, tests if unique source files are parsed
aoqi@0 49 runTest("-d", ".",
aoqi@0 50 "-sourcepath", testSrc.getAbsolutePath(),
aoqi@0 51 "-subpackages",
aoqi@0 52 "p:p.q");
aoqi@0 53 File testPkgDir = new File(testSrc, "p");
aoqi@0 54 File testFile = new File(testPkgDir, "C3.java");
aoqi@0 55 runTest("-d", ".",
aoqi@0 56 "-sourcepath", testSrc.getAbsolutePath(),
aoqi@0 57 testFile.getAbsolutePath(),
aoqi@0 58 "p");
aoqi@0 59 runTest("-d", ".",
aoqi@0 60 "-classpath", testSrc.getAbsolutePath(),
aoqi@0 61 testFile.getAbsolutePath(),
aoqi@0 62 "p");
aoqi@0 63
aoqi@0 64 }
aoqi@0 65 void runTest(String... args) {
aoqi@0 66 StringWriter sw = new StringWriter();
aoqi@0 67 PrintWriter pw = new PrintWriter(sw);
aoqi@0 68 String doclet = com.sun.tools.doclets.standard.Standard.class.getName();
aoqi@0 69 int rc = com.sun.tools.javadoc.Main.execute("javadoc", pw, pw, pw, doclet, args);
aoqi@0 70 pw.close();
aoqi@0 71
aoqi@0 72 String out = sw.toString();
aoqi@0 73 if (!out.isEmpty()) {
aoqi@0 74 System.err.println(out);
aoqi@0 75 }
aoqi@0 76
aoqi@0 77 if (rc != 0)
aoqi@0 78 throw new Error("javadoc failed: exit code = " + rc);
aoqi@0 79
aoqi@0 80 if (out.matches("(?s).*p/[^ ]+\\.class.*"))
aoqi@0 81 throw new Error("reading .class files");
aoqi@0 82
aoqi@0 83 if (!new File("index.html").exists())
aoqi@0 84 throw new Error("index.html not found");
aoqi@0 85 }
aoqi@0 86 }

mercurial