diff --git a/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java b/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java
index a54fbbcff75..eafad8c3245 100644
--- a/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java
+++ b/test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2024, 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
@@ -117,7 +117,7 @@ public class TestNewLanguageFeatures extends JavadocTester {
// Check class type parameters section.
"""
V - This is the second type parameter.""",
+ T - Th\
+ is is the first type parameter.
+ V - Th\
+ is is the second type parameter.""",
// Signature of method with type parameters
"""
- %s""".formatted(id, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.empty(),
+ %s""".formatted(id, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.of("java"),
Optional.of("snippet-case" + id + "()2"))));
});
}
@@ -973,7 +973,7 @@ public class TestSnippetTag extends SnippetTester {
"""
case%s()
- %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", expectedOutput, Optional.empty(),
+ %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", expectedOutput, Optional.of("txt"),
Optional.of("snippet-case" + index + "()2"))));
});
}
@@ -1552,7 +1552,7 @@ public class TestSnippetTag extends SnippetTester {
"""
case%s()
- %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.empty(),
+ %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.of("java"),
Optional.of("snippet-case" + index + "()2"))));
});
}
@@ -1666,13 +1666,13 @@ public class TestSnippetTag extends SnippetTester {
"""
case0()
- """ + getSnippetHtmlRepresentation("pkg/A.html", "", Optional.empty(),
+ """ + getSnippetHtmlRepresentation("pkg/A.html", "", Optional.of("txt"),
Optional.of("snippet-case0()2")));
checkOutput("pkg/A.html", true,
"""
case1()
- """ + getSnippetHtmlRepresentation("pkg/A.html", "", Optional.empty(),
+ """ + getSnippetHtmlRepresentation("pkg/A.html", "", Optional.of("txt"),
Optional.of("snippet-case1()2")));
}
@@ -1851,12 +1851,126 @@ public class TestSnippetTag extends SnippetTester {
"""
case%s()
- %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.empty(),
+ %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.of("java"),
Optional.of("snippet-case" + index + "()2"))));
});
}
@Test
+ public void testPositiveExternalHybridLangAttribute(Path base) throws Exception {
+
+ Path srcDir = base.resolve("src");
+ Path outDir = base.resolve("out");
+
+ record TestCase(String tag, String expectedContent, String expectedLang) { }
+
+ final var testCases = List.of(
+ // -------------------- external snippets --------------------
+ // if there's no file extension and no lang attribute, then
+ // markup is that of "java" and the class="language-" attribute
+ // is absent
+ new TestCase("""
+ {@snippet file=".file"}
+ """, """
+ # @highlight substring=hi:
+ hi there
+ """, null),
+ new TestCase("""
+ {@snippet file="file"}
+ """, """
+ # @highlight substring=hi:
+ hi there
+ """, null),
+ // if the file extension differs from the value of the lang
+ // attribute, which is set to "java", "properties" or other,
+ // then the class="language-" attribute is that of lang and
+ // markup is that of "properties" for lang=properties and
+ // markup is that of "java" for anything else
+ new TestCase("""
+ {@snippet file="File.java" lang=properties}
+ """, """
+ hi there // @highlight substring=there
+ """, "properties"),
+ new TestCase("""
+ {@snippet file="file.properties" lang=java}
+ """, """
+ # @highlight substring=hi:
+ hi there
+ """, "java"),
+ new TestCase("""
+ {@snippet file="File.java" lang=txt}
+ """, """
+ # @highlight substring=hi:
+ hi there
+ """, "txt"),
+ // if there's no file extension, but the lang attribute is set
+ // to "java", "properties", or other, then the class="language-"
+ // attribute is that of lang and markup is that of "properties"
+ // for lang=properties and markup is that of "java" for
+ // anything else
+ new TestCase("""
+ {@snippet file="file" lang=properties}
+ """, """
+ hi there // @highlight substring=there
+ """, "properties"),
+ new TestCase("""
+ {@snippet file="file" lang=java}
+ """, """
+ # @highlight substring=hi:
+ hi there
+ """, "java"),
+ new TestCase("""
+ {@snippet file="file" lang=txt}
+ """, """
+ # @highlight substring=hi:
+ hi there
+ """, "txt"),
+ // --------------------- hybrid snippets ---------------------
+ // the lang attribute "overrides" file extension
+ new TestCase("""
+ {@snippet file="File.java" lang=properties:
+ # @highlight substring=hi:
+ hi there // @highlight substring=there
+ }
+ """, """
+ hi there // @highlight substring=there
+ """, "properties"),
+ // if the lang attribute is absent, file extension determines
+ // markup and the the class="language-" attribute
+ new TestCase("""
+ {@snippet file="file.properties":
+ # @highlight substring=hi:
+ hi there // @highlight substring=there
+ }
+ """, """
+ hi there // @highlight substring=there
+ """, "properties")
+ );
+
+ for (var f : List.of(".file", "file", "File.java", "file.properties"))
+ addSnippetFile(srcDir, "pkg", f, """
+ # @highlight substring=hi:
+ hi there // @highlight substring=there
+ """);
+
+ ClassBuilder classBuilder = new ClassBuilder(tb, "pkg.A")
+ .setModifiers("public", "class");
+ forEachNumbered(testCases, (s, i) -> classBuilder.addMembers(
+ MethodBuilder.parse("public void case%s() { }".formatted(i)).setComments(s.tag)));
+ classBuilder.write(srcDir);
+ javadoc("-d", outDir.toString(),
+ "-sourcepath", srcDir.toString(),
+ "pkg");
+ checkExit(Exit.OK);
+ forEachNumbered(testCases, (t, i) -> checkOutput("pkg/A.html", true, """
+ case%s()
+
+ %s
+ """.formatted(i, getSnippetHtmlRepresentation("pkg/A.html", t.expectedContent, Optional.ofNullable(t.expectedLang),
+ Optional.of("snippet-case" + i + "()2")))));
+ }
+
+ //@Test
public void testNegativeHybridTag_FileNotFound(Path base) throws Exception {
Path srcDir = base.resolve("src");
Path outDir = base.resolve("out");
@@ -2310,7 +2424,7 @@ public class TestSnippetTag extends SnippetTester {
"""
case%s()
- %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.empty(),
+ %s""".formatted(index, getSnippetHtmlRepresentation("pkg/A.html", t.expectedOutput(), Optional.of("txt"),
Optional.of("snippet-case" + index + "()2"))));
});
}
diff --git a/test/langtools/jdk/javadoc/doclet/testThrows/TestThrows.java b/test/langtools/jdk/javadoc/doclet/testThrows/TestThrows.java
index ca4592ea5f8..e4c57857899 100644
--- a/test/langtools/jdk/javadoc/doclet/testThrows/TestThrows.java
+++ b/test/langtools/jdk/javadoc/doclet/testThrows/TestThrows.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2024, 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
@@ -83,7 +83,7 @@
"""
- Type Parameters:
- T - the throwable
+ T - the throwable
- Throws:
T - if a specific error occurs
java.lang.Exception - if an exception occurs
diff --git a/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java b/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java
index 7f586b3539d..dad610acb30 100644
--- a/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java
+++ b/test/langtools/jdk/javadoc/doclet/testTypeParams/TestTypeParameters.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2024, 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
@@ -23,12 +23,13 @@
/*
* @test
- * @bug 4927167 4974929 7010344 8025633 8081854 8182765 8187288 8261976
+ * @bug 4927167 4974929 6381729 7010344 8025633 8081854 8182765 8187288 8261976 8313931
* @summary When the type parameters are more than 10 characters in length,
* make sure there is a line break between type params and return type
* in member summary. Also, test for type parameter links in package-summary and
* class-use pages. The class/annotation pages should check for type
* parameter links in the class/annotation signature section when -linksource is set.
+ * Verify that generic type parameters on constructors are documented.
* @library ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build javadoc.tester.*
@@ -94,4 +95,37 @@ public class TestTypeParameters extends JavadocTester {
le="class in pkg">ParamTest2<java.util.List<? extends Foo4>>>""");
}
+
+ @Test
+ public void test3() {
+ javadoc("-d", "out-3",
+ "-Xdoclint:none",
+ "--no-platform-links",
+ "-sourcepath", testSrc,
+ "pkg");
+ checkExit(Exit.OK);
+
+ checkOutput("pkg/CtorTypeParam.html", true,
+ """
+ <T extends java.lang.Runnable>
+
+
+
Generic constructor.
""",
+ """
+
public\
+ <T extends java.lang.Runnable>\
+ CtorTypeParam()
""",
+ """
+
T""",
+ """
+
- Type Parameters:
+
T - the type parameter""",
+ """
+
- See Also:
+
-
+ """);
+ }
}
diff --git a/test/langtools/jdk/javadoc/doclet/testTypeParams/pkg/CtorTypeParam.java b/test/langtools/jdk/javadoc/doclet/testTypeParams/pkg/CtorTypeParam.java
new file mode 100644
index 00000000000..690471861db
--- /dev/null
+++ b/test/langtools/jdk/javadoc/doclet/testTypeParams/pkg/CtorTypeParam.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2024, 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.
+ */
+
+package pkg;
+
+public class CtorTypeParam {
+ /**
+ * Generic constructor. {@link T}
+ *
+ * @param the type parameter
+ * @see T link to type parameter
+ */
+ public CtorTypeParam() {
+ }
+}
diff --git a/test/langtools/jdk/javadoc/doclet/testUnicode/TestUnicode.java b/test/langtools/jdk/javadoc/doclet/testUnicode/TestUnicode.java
index 76008260343..cf30488ec7b 100644
--- a/test/langtools/jdk/javadoc/doclet/testUnicode/TestUnicode.java
+++ b/test/langtools/jdk/javadoc/doclet/testUnicode/TestUnicode.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2024, 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
@@ -101,7 +101,7 @@ public class TestUnicode extends JavadocTester {
"""
- Type Parameters:
- ## - the ##
+ ## - the ##
""".replaceAll("##", chineseElephant),
"""
diff --git a/test/langtools/jdk/javadoc/doclet/testVoidHtmlElements/TestVoidHtmlElements.java b/test/langtools/jdk/javadoc/doclet/testVoidHtmlElements/TestVoidHtmlElements.java
index 6229533af4a..bd44fe88141 100644
--- a/test/langtools/jdk/javadoc/doclet/testVoidHtmlElements/TestVoidHtmlElements.java
+++ b/test/langtools/jdk/javadoc/doclet/testVoidHtmlElements/TestVoidHtmlElements.java
@@ -25,13 +25,12 @@
* @test
* @bug 8266856
* @modules jdk.javadoc/jdk.javadoc.internal.doclint
- * jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.markup
+ * jdk.javadoc/jdk.javadoc.internal.html
* @run main TestVoidHtmlElements
*/
-import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.TagName;
-import jdk.javadoc.internal.doclint.HtmlTag;
+import jdk.javadoc.internal.html.HtmlTree;
+import jdk.javadoc.internal.html.HtmlTag;
public class TestVoidHtmlElements {
@@ -42,9 +41,8 @@ public class TestVoidHtmlElements {
// check that the definition of void-ness is the same.
for (HtmlTag htmlTag : HtmlTag.values()) {
try {
- TagName tagName = TagName.valueOf(htmlTag.name());
checks++;
- check(htmlTag, tagName);
+ check(htmlTag);
} catch (IllegalArgumentException e) {
// no matching TagName
}
@@ -56,8 +54,8 @@ public class TestVoidHtmlElements {
System.out.println(checks + " checks passed");
}
- private static void check(HtmlTag htmlTag, TagName tagName) {
- boolean elementIsVoid = new HtmlTree(tagName).isVoid();
+ private static void check(HtmlTag htmlTag) {
+ boolean elementIsVoid = new HtmlTree(htmlTag).isVoid();
boolean elementHasNoEndTag = htmlTag.endKind == HtmlTag.EndKind.NONE;
if (elementIsVoid != elementHasNoEndTag) {
throw new AssertionError(htmlTag + ", " + elementIsVoid + ", " + elementHasNoEndTag);
diff --git a/test/langtools/jdk/jshell/ShutdownTest.java b/test/langtools/jdk/jshell/ShutdownTest.java
index 45431f66162..da4e516f94c 100644
--- a/test/langtools/jdk/jshell/ShutdownTest.java
+++ b/test/langtools/jdk/jshell/ShutdownTest.java
@@ -28,6 +28,11 @@
* @run testng ShutdownTest
*/
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.function.Consumer;
import jdk.jshell.JShell;
@@ -35,8 +40,9 @@ import jdk.jshell.JShell.Subscription;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import org.testng.annotations.BeforeMethod;
-@Test
public class ShutdownTest extends KullaTesting {
int shutdownCount;
@@ -53,6 +59,7 @@ public class ShutdownTest extends KullaTesting {
assertEquals(shutdownCount, 1);
}
+ @Test
public void testCloseCallback() {
shutdownCount = 0;
getState().onShutdown(this::shutdownCounter);
@@ -60,6 +67,7 @@ public class ShutdownTest extends KullaTesting {
assertEquals(shutdownCount, 1);
}
+ @Test
public void testCloseUnsubscribe() {
shutdownCount = 0;
Subscription token = getState().onShutdown(this::shutdownCounter);
@@ -68,6 +76,7 @@ public class ShutdownTest extends KullaTesting {
assertEquals(shutdownCount, 0);
}
+ @Test
public void testTwoShutdownListeners() {
ShutdownListener listener1 = new ShutdownListener();
ShutdownListener listener2 = new ShutdownListener();
@@ -118,6 +127,51 @@ public class ShutdownTest extends KullaTesting {
getState().onShutdown(e -> {});
}
+ @Test
+ public void testRunShutdownHooks() throws IOException {
+ Path temporary = Paths.get("temp");
+ Files.newOutputStream(temporary).close();
+ assertEval("import java.io.*;");
+ assertEval("import java.nio.file.*;");
+ assertEval("""
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ try {
+ Files.delete(Paths.get("$TEMPORARY"));
+ } catch (IOException ex) {
+ //ignored
+ }
+ }))
+ """.replace("$TEMPORARY", temporary.toAbsolutePath()
+ .toString()
+ .replace("\\", "\\\\")));
+ getState().close();
+ assertFalse(Files.exists(temporary));
+ }
+
+ private Method currentTestMethod;
+
+ @BeforeMethod
+ public void setUp(Method testMethod) {
+ currentTestMethod = testMethod;
+ super.setUp();
+ }
+
+ @BeforeMethod
+ public void setUp() {
+ }
+
+ @Override
+ public void setUp(Consumer bc) {
+ Consumer augmentedBuilder = switch (currentTestMethod.getName()) {
+ case "testRunShutdownHooks" -> builder -> {
+ builder.executionEngine(Presets.TEST_STANDARD_EXECUTION);
+ bc.accept(builder);
+ };
+ default -> bc;
+ };
+ super.setUp(augmentedBuilder);
+ }
+
private static class ShutdownListener implements Consumer {
private int count;
diff --git a/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java b/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java
index d6219dbff11..30a5f54ac26 100644
--- a/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java
+++ b/test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2024, 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
@@ -603,7 +603,7 @@ public class ClassfileInspector {
}
public boolean checkMatch(TypeAnnotation anno) {
- boolean matches = checkMatch((Annotation) anno);
+ boolean matches = checkMatch(anno.annotation());
int boundIdx = Integer.MIN_VALUE, paraIdx = Integer.MIN_VALUE, tIdx = Integer.MIN_VALUE, exIdx = Integer.MIN_VALUE;
switch (anno.targetInfo()) {
case TypeAnnotation.TypeParameterBoundTarget binfo -> {
@@ -1197,8 +1197,8 @@ public class ClassfileInspector {
switch (attr) {
case RuntimeVisibleTypeAnnotationsAttribute rvattr -> {
if (expected.matchVisibility(true)) {
- for(Annotation anno : rvattr.annotations()) {
- expected.matchAnnotation(anno);
+ for(var anno : rvattr.annotations()) {
+ expected.matchAnnotation(anno.annotation());
}
}
}
diff --git a/test/langtools/tools/doclint/CoverageExtras.java b/test/langtools/tools/doclint/CoverageExtras.java
index 5a6c90c4b74..55ac63d6ab3 100644
--- a/test/langtools/tools/doclint/CoverageExtras.java
+++ b/test/langtools/tools/doclint/CoverageExtras.java
@@ -26,13 +26,15 @@
* @bug 8006263
* @summary Supplementary test cases needed for doclint
* @modules jdk.javadoc/jdk.javadoc.internal.doclint
+ * jdk.javadoc/jdk.javadoc.internal.html
*/
import java.util.Objects;
import jdk.javadoc.internal.doclint.Checker;
-import jdk.javadoc.internal.doclint.HtmlTag;
import jdk.javadoc.internal.doclint.Messages;
+import jdk.javadoc.internal.html.HtmlAttr;
+import jdk.javadoc.internal.html.HtmlTag;
public class CoverageExtras {
public static void main(String... args) {
@@ -41,8 +43,8 @@ public class CoverageExtras {
void run() {
check(HtmlTag.A, HtmlTag.valueOf("A"), HtmlTag.values());
- check(HtmlTag.Attr.ABBR, HtmlTag.Attr.valueOf("ABBR"), HtmlTag.Attr.values());
- check(HtmlTag.AttrKind.INVALID, HtmlTag.AttrKind.valueOf("INVALID"), HtmlTag.AttrKind.values());
+ check(HtmlAttr.ABBR, HtmlAttr.valueOf("ABBR"), HtmlAttr.values());
+ check(HtmlAttr.AttrKind.INVALID, HtmlAttr.AttrKind.valueOf("INVALID"), HtmlAttr.AttrKind.values());
check(HtmlTag.BlockType.BLOCK, HtmlTag.BlockType.valueOf("BLOCK"), HtmlTag.BlockType.values());
check(HtmlTag.EndKind.NONE, HtmlTag.EndKind.valueOf("NONE"), HtmlTag.EndKind.values());
check(HtmlTag.Flag.EXPECT_CONTENT, HtmlTag.Flag.valueOf("EXPECT_CONTENT"), HtmlTag.Flag.values());
diff --git a/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java b/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java
index 3b8f29d2d62..6ef32c881bb 100644
--- a/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java
+++ b/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.java
@@ -100,10 +100,6 @@ public class HtmlVersionTagsAttrsTest {
*
* hgroup no longer supported in HTML5.
*
- *
- * Summary
- * Details and Summary no longer supported in HTML5
- *
*/
public void notSupportedTags_html5() { }
@@ -152,6 +148,10 @@ public class HtmlVersionTagsAttrsTest {
*
* Test current time is at night
* Testtext
+ *
+ * Summary
+ * Details
+ *
*/
public void SupportedTags_html5() { }
diff --git a/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.out b/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.out
index 69b31d53831..badd9ea9982 100644
--- a/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.out
+++ b/test/langtools/tools/doclint/html/HtmlVersionTagsAttrsTest.out
@@ -226,7 +226,7 @@ HtmlVersionTagsAttrsTest.java:67: error: attribute not supported in HTML5: width
HtmlVersionTagsAttrsTest.java:68: error: attribute not supported in HTML5: name
* Anchor Test
^
-HtmlVersionTagsAttrsTest.java:69: error: attribute "border" for table only accepts "" or "1": BORDER
+HtmlVersionTagsAttrsTest.java:69: error: attribute "border" for table only accepts "" or "1": 0
*
^
HtmlVersionTagsAttrsTest.java:71: error: no caption for table
@@ -259,19 +259,7 @@ HtmlVersionTagsAttrsTest.java:97: error: unknown tag: hgroup
HtmlVersionTagsAttrsTest.java:100: error: unknown tag: hgroup
*
^
-HtmlVersionTagsAttrsTest.java:103: error: unknown tag: details
- *
- ^
-HtmlVersionTagsAttrsTest.java:104: error: unknown tag: summary
- * Summary
- ^
-HtmlVersionTagsAttrsTest.java:104: error: unknown tag: summary
- * Summary
- ^
-HtmlVersionTagsAttrsTest.java:106: error: unknown tag: details
- *
- ^
-HtmlVersionTagsAttrsTest.java:129: error: element not allowed in documentation comments:
+HtmlVersionTagsAttrsTest.java:125: error: element not allowed in documentation comments:
*
^
HtmlVersionTagsAttrsTest.java:161: error: heading not found for
@@ -298,7 +286,7 @@ HtmlVersionTagsAttrsTest.java:181: error: tag not allowed here: