Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
nizarbenalla committed Jan 24, 2025
1 parent 605b53e commit dd56a12
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ private Content snippetTagOutput(Element element, SnippetTree tag, StyledText co
if (lang != null && !lang.isBlank()) {
code.addStyle("language-" + lang);
}

//todo err: ambigious link (location)
content.consumeBy((styles, sequence) -> {
CharSequence text = Text.normalizeNewlines(sequence);
if (styles.isEmpty()) {
Expand All @@ -145,6 +145,7 @@ private Content snippetTagOutput(Element element, SnippetTree tag, StyledText co
boolean markupEncountered = false;
Set<String> classes = new HashSet<>();
for (Style s : styles) {
// different jvm runs use a differnet salt when creating hash
if (s instanceof Style.Name n) {
classes.add(n.name());
} else if (s instanceof Style.Link l) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/*
* 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.
*/

/*
* @test
* @bug 8346128 8346095
* @summary Check that snippet generation is reproducible
* @library /tools/lib ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build toolbox.ToolBox javadoc.tester.*
* @run main ReproducibleSnippetTest
*/

import javadoc.tester.JavadocTester;
import toolbox.ToolBox;

import java.nio.file.Path;

public class ReproducibleSnippetTest extends JavadocTester {
ToolBox tb = new ToolBox();

public static void main(String... args) throws Exception {
var tester = new ReproducibleSnippetTest();
tester.runTests();
}

@Test
public void test(Path base) throws Exception {

Path src = base.resolve("src");
tb.writeJavaFiles(src,
"""
package p;
public interface One {
/**
* {@code One obj1}
* {@snippet lang = java:
* // @link substring="ab" target="One#ab" :
* obj1.ab(a()); // @link substring="a" target="#a"
*} class comment
*/
void start();
int a();
void with();
void ab(int i);
}
""");


javadoc("-d",
"out",
"-sourcepath",
src.toString(),
"p");
checkExit(Exit.OK);

checkOutput("p/One.html", false,
"""
<pre class="snippet" id="snippet-start()1"><code class="language-java"> obj1.<a href="#ab(int)"><code>a</code></a>
""",
"""
<pre class="snippet" id="snippet-start()2"><code class="language-java"> obj1.<a href="#ab(int)">" +
""");
}
}
Empty file.

0 comments on commit dd56a12

Please sign in to comment.