1/* 2 * Copyright (c) 2012, 2017, 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 8005092 6469562 27 * @summary Test repeated annotations output. 28 * @author bpatel 29 * @library ../lib 30 * @modules jdk.javadoc/jdk.javadoc.internal.tool 31 * @build JavadocTester 32 * @run main TestRepeatedAnnotations 33 */ 34 35public class TestRepeatedAnnotations extends JavadocTester { 36 37 public static void main(String... args) throws Exception { 38 TestRepeatedAnnotations tester = new TestRepeatedAnnotations(); 39 tester.runTests(); 40 } 41 42 @Test 43 void test() { 44 javadoc("-d", "out", 45 "-sourcepath", testSrc, 46 "pkg", "pkg1"); 47 checkExit(Exit.OK); 48 49 checkOutput("pkg/C.html", true, 50 "<a href=\"../pkg/ContaineeSynthDoc.html\" " 51 + "title=\"annotation in pkg\">@ContaineeSynthDoc</a> " 52 + "<a href=\"../pkg/ContaineeSynthDoc.html\" " 53 + "title=\"annotation in pkg\">@ContaineeSynthDoc</a>", 54 "<a href=\"../pkg/ContaineeRegDoc.html\" " 55 + "title=\"annotation in pkg\">@ContaineeRegDoc</a> " 56 + "<a href=\"../pkg/ContaineeRegDoc.html\" " 57 + "title=\"annotation in pkg\">@ContaineeRegDoc</a>", 58 "<a href=\"../pkg/RegContainerDoc.html\" " 59 + "title=\"annotation in pkg\">@RegContainerDoc</a>" 60 + "({" 61 + "<a href=\"../pkg/RegContaineeNotDoc.html\" " 62 + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>," 63 + "<a href=\"../pkg/RegContaineeNotDoc.html\" " 64 + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})"); 65 66 checkOutput("pkg/D.html", true, 67 "<a href=\"../pkg/RegDoc.html\" title=\"annotation in pkg\">@RegDoc</a>" 68 + "(<a href=\"../pkg/RegDoc.html#x--\">x</a>=1)", 69 "<a href=\"../pkg/RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>" 70 + "(<a href=\"../pkg/RegArryDoc.html#y--\">y</a>=1)", 71 "<a href=\"../pkg/RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>" 72 + "(<a href=\"../pkg/RegArryDoc.html#y--\">y</a>={1,2})", 73 "<a href=\"../pkg/NonSynthDocContainer.html\" " 74 + "title=\"annotation in pkg\">@NonSynthDocContainer</a>" 75 + "(" 76 + "<a href=\"../pkg/RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>" 77 + "(<a href=\"../pkg/RegArryDoc.html#y--\">y</a>=1))"); 78 79 checkOutput("pkg1/C.html", true, 80 "<a href=\"../pkg1/RegContainerValDoc.html\" " 81 + "title=\"annotation in pkg1\">@RegContainerValDoc</a>" 82 + "(<a href=\"../pkg1/RegContainerValDoc.html#value--\">value</a>={" 83 + "<a href=\"../pkg1/RegContaineeNotDoc.html\" " 84 + "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>," 85 + "<a href=\"../pkg1/RegContaineeNotDoc.html\" " 86 + "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>}," 87 + "<a href=\"../pkg1/RegContainerValDoc.html#y--\">y</a>=3)", 88 "<a href=\"../pkg1/ContainerValDoc.html\" " 89 + "title=\"annotation in pkg1\">@ContainerValDoc</a>" 90 + "(<a href=\"../pkg1/ContainerValDoc.html#value--\">value</a>={" 91 + "<a href=\"../pkg1/ContaineeNotDoc.html\" " 92 + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>," 93 + "<a href=\"../pkg1/ContaineeNotDoc.html\" " 94 + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>}," 95 + "<a href=\"../pkg1/ContainerValDoc.html#x--\">x</a>=1)"); 96 97 checkOutput("pkg/C.html", false, 98 "<a href=\"../pkg/RegContaineeDoc.html\" " 99 + "title=\"annotation in pkg\">@RegContaineeDoc</a> " 100 + "<a href=\"../pkg/RegContaineeDoc.html\" " 101 + "title=\"annotation in pkg\">@RegContaineeDoc</a>", 102 "<a href=\"../pkg/RegContainerNotDoc.html\" " 103 + "title=\"annotation in pkg\">@RegContainerNotDoc</a>" 104 + "(<a href=\"../pkg/RegContainerNotDoc.html#value--\">value</a>={" 105 + "<a href=\"../pkg/RegContaineeNotDoc.html\" " 106 + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>," 107 + "<a href=\"../pkg/RegContaineeNotDoc.html\" " 108 + "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})"); 109 110 checkOutput("pkg1/C.html", false, 111 "<a href=\"../pkg1/ContaineeSynthDoc.html\" " 112 + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a> " 113 + "<a href=\"../pkg1/ContaineeSynthDoc.html\" " 114 + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>", 115 "<a href=\"../pkg1/RegContainerValNotDoc.html\" " 116 + "title=\"annotation in pkg1\">@RegContainerValNotDoc</a>" 117 + "(<a href=\"../pkg1/RegContainerValNotDoc.html#value--\">value</a>={" 118 + "<a href=\"../pkg1/RegContaineeDoc.html\" " 119 + "title=\"annotation in pkg1\">@RegContaineeDoc</a>," 120 + "<a href=\"../pkg1/RegContaineeDoc.html\" " 121 + "title=\"annotation in pkg1\">@RegContaineeDoc</a>}," 122 + "<a href=\"../pkg1/RegContainerValNotDoc.html#y--\">y</a>=4)", 123 "<a href=\"../pkg1/ContainerValNotDoc.html\" " 124 + "title=\"annotation in pkg1\">@ContainerValNotDoc</a>" 125 + "(<a href=\"../pkg1/ContainerValNotDoc.html#value--\">value</a>={" 126 + "<a href=\"../pkg1/ContaineeNotDoc.html\" " 127 + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>," 128 + "<a href=\"../pkg1/ContaineeNotDoc.html\" " 129 + "title=\"annotation in pkg1\">@ContaineeNotDoc</a>}," 130 + "<a href=\"../pkg1/ContainerValNotDoc.html#x--\">x</a>=2)", 131 "<a href=\"../pkg1/ContainerSynthNotDoc.html\" " 132 + "title=\"annotation in pkg1\">@ContainerSynthNotDoc</a>(" 133 + "<a href=\"../pkg1/ContainerSynthNotDoc.html#value--\">value</a>=" 134 + "<a href=\"../pkg1/ContaineeSynthDoc.html\" " 135 + "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>)"); 136 } 137} 138