DocTest.java revision 3233:b5d08bc0d224
1/*
2 * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/*
25 * @test
26 * @bug 8008768
27 * @summary Using {@inheritDoc} in simple tag defined via -tag fails
28 * @author Mike Duigou
29 * @library ../lib
30 * @modules jdk.javadoc
31 * @build JavadocTester
32 * @run main DocTest
33 */
34
35/**
36 * DocTest documentation.
37 *
38 * @apiNote DocTest API note.
39 * @implSpec DocTest implementation spec.
40 * @implNote DocTest implementation note.
41 */
42public class DocTest extends JavadocTester {
43    public static void main(String... args) throws Exception {
44        DocTest tester = new DocTest();
45        tester.runTests();
46    }
47
48    @Test
49    void test() {
50        javadoc("-verbose",
51                "-d", "DocTest",
52                "-tag", "apiNote:optcm:<em>API Note</em>",
53                "-tag", "implSpec:optcm:<em>Implementation Requirements</em>:",
54                "-tag", "implNote:optcm:<em>Implementation Note</em>:",
55                "-package",
56                testSrc("DocTest.java")
57        );
58        checkExit(Exit.OK);
59
60        // javadoc does not report an exit code for an internal exception (!)
61        // so monitor stderr for stack dumps.
62        checkOutput(Output.STDERR, false, "at com.sun");
63    }
64
65    /**
66     * DocTest() documentation.
67     *
68     * @apiNote DocTest() API note.
69     * @implSpec DocTest() implementation spec.
70     * @implNote DocTest() implementation note.
71     */
72    public DocTest() {
73    }
74
75    /**
76     * DocTest.testMethod() documentation.
77     *
78     * @apiNote DocTest.testMethod() API note.
79     * @implSpec DocTest.testMethod() implementation spec.
80     * @implNote DocTest.testMethod() implementation note.
81     */
82    public void testMethod() {
83    }
84}
85
86/**
87 * DocTestWithTags documentation.
88 *
89 * @apiNote DocTestWithTags API note.
90 * <pre>
91 *    DocTestWithTags API note code sample.
92 * </pre>
93 * @implSpec DocTestWithTags implementation spec.
94 * <pre>
95 *    DocTestWithTags implementation spec code sample.
96 * </pre>
97 * @implNote DocTestWithTags implementation note.
98 * <pre>
99 *    DocTestWithTags implementation note code sample.
100 * </pre>
101 */
102class DocTestWithTags {
103
104    /**
105     * DocTestWithTags() documentation.
106     *
107     * @apiNote DocTestWithTags() API note.
108     * <pre>
109     *    DocTestWithTags() API note code sample.
110     * </pre>
111     * @implSpec DocTestWithTags() implementation spec.
112     * <pre>
113     *    DocTestWithTags() implementation spec code sample.
114     * </pre>
115     * @implNote DocTest() implementation note.
116     * <pre>
117     *    DocTest() implementation note code sample.
118     * </pre>
119     */
120    public DocTestWithTags() {
121    }
122
123    /**
124     * DocTest.testMethod() documentation.
125     *
126     * @apiNote DocTestWithTags.testMethod() API note.
127     * <pre>
128     *    DocTestWithTags.testMethod() API note code sample.
129     * </pre>
130     * @implSpec DocTestWithTags.testMethod() implementation spec.
131     * <pre>
132     *    DocTestWithTags.testMethod() API implementation spec code sample.
133     * </pre>
134     * @implNote DocTest.testMethod() implementation note.
135     * <pre>
136     *    DocTest.testMethod() API implementation code sample.
137     * </pre>
138     */
139    public void testMethod() {
140    }
141}
142
143class MinimallyExtendsDocTest extends DocTest {
144}
145
146/**
147 * SimpleExtendsDocTest documentation.
148 */
149class SimpleExtendsDocTest extends DocTest {
150
151    /**
152     * SimpleExtendsDocTest() documentation.
153     */
154    public SimpleExtendsDocTest() {
155
156    }
157
158    /**
159     * SimpleExtendsDocTest.testMethod() documenation.
160     */
161    @java.lang.Override
162    public void testMethod() {
163    }
164}
165
166/**
167 * {@inheritDoc}
168 */
169class SimpleInheritDocDocTest extends DocTest {
170
171    /**
172     * {@inheritDoc}
173     */
174    public SimpleInheritDocDocTest() {
175    }
176
177    /**
178     * {@inheritDoc}
179     */
180    @java.lang.Override
181    public void testMethod() {
182    }
183}
184
185/**
186 * {@inheritDoc}
187 *
188 * @apiNote {@inheritDoc}
189 * @implSpec {@inheritDoc}
190 * @implNote {@inheritDoc}
191 */
192class FullInheritDocDocTest extends DocTest {
193
194    /**
195     * {@inheritDoc}
196     *
197     * @apiNote {@inheritDoc}
198     * @implSpec {@inheritDoc}
199     * @implNote {@inheritDoc}
200     */
201    public FullInheritDocDocTest() {
202
203    }
204
205    /**
206     * {@inheritDoc}
207     *
208     * @apiNote {@inheritDoc}
209     * @implSpec {@inheritDoc}
210     * @implNote {@inheritDoc}
211     */
212    @java.lang.Override
213    public void testMethod() {
214    }
215}
216
217/**
218 * {@inheritDoc} and FullInheritDocPlusDocTest documentation.
219 *
220 * @implSpec {@inheritDoc} and FullInheritDocPlusDocTest API note.
221 * @implNote {@inheritDoc} and FullInheritDocPlusDocTest implementation specification.
222 * @apiNote {@inheritDoc} and FullInheritDocPlusDocTest implementation note.
223 */
224class FullInheritDocPlusDocTest extends DocTest {
225
226    /**
227     * {@inheritDoc} and FullInheritDocPlusDocTest() documentation.
228     *
229     * @implSpec {@inheritDoc} and FullInheritDocPlusDocTest() API note.
230     * @implNote {@inheritDoc} and FullInheritDocPlusDocTest() implementation specification.
231     * @apiNote {@inheritDoc} and FullInheritDocPlusDocTest() implementation note.
232     */
233    public FullInheritDocPlusDocTest() {
234
235    }
236
237    /**
238     * {@inheritDoc} and FullInheritDocPlusDocTest.testMethod() documentation.
239     *
240     * @implSpec {@inheritDoc} and FullInheritDocPlusDocTest.testMethod() API note.
241     * @implNote {@inheritDoc} and FullInheritDocPlusDocTest.testMethod() implementation specification.
242     * @apiNote {@inheritDoc} and FullInheritDocPlusDocTest.testMethod() implementation note.
243     */
244    @java.lang.Override
245    public void testMethod() {
246    }
247}
248
249