Skip to content

Commit 9146125

Browse files
committed
test: cover additional paths in DocCommentFinalizer.cpp
Exercise empty-paragraph, admonition, and styled-continuation branches in Markdown list conversion to meet the 90% patch coverage target.
1 parent 1ebff32 commit 9146125

5 files changed

Lines changed: 484 additions & 12 deletions

File tree

src/lib/Metadata/Finalizers/DocCommentFinalizer.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,8 @@ buildListFromRange(InlineIter first, InlineIter last)
9191
doc::ListBlock list;
9292
while (first != last)
9393
{
94-
if (isMarkdownListMarker(**first))
95-
{
96-
list.items.push_back(buildListItem(first, last));
97-
}
98-
else
99-
{
100-
++first;
101-
}
94+
MRDOCS_ASSERT(isMarkdownListMarker(**first));
95+
list.items.push_back(buildListItem(first, last));
10296
}
10397
return list;
10498
}

test-files/golden-tests/javadoc/markdown-list/markdown-list.adoc

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
| A simple list with Markdown bold.
1414
| link:#B[`B`]
1515
| A list with inline code and list items containing "‐ ".
16+
| link:#C[`C`]
17+
| A list with no preceding text.
1618
|===
1719

1820
=== Functions
@@ -24,6 +26,12 @@
2426
| A list with Markdown bold and code.
2527
| link:#g[`g`]
2628
| A list with Markdown code and a nested list.
29+
| link:#h[`h`]
30+
| A function with a list inside a note.
31+
| link:#i[`i`]
32+
| Marker with styled continuation only.
33+
| link:#j[`j`]
34+
| Brief text.
2735
|===
2836

2937
[#A]
@@ -70,6 +78,25 @@ A sentence with `inline code`. Now a list:
7078
* `qux()` ‐ Yet another function.
7179
* `quux()` ‐ Guess what?
7280

81+
[#C]
82+
== C
83+
84+
A list with no preceding text.
85+
86+
=== Synopsis
87+
88+
Declared in `<markdown‐list.cpp>`
89+
90+
[source,cpp,subs="verbatim,replacements,macros,-callouts"]
91+
----
92+
class C;
93+
----
94+
95+
=== Description
96+
97+
* First item.
98+
* Second item.
99+
73100
[#f]
74101
== f
75102

@@ -118,5 +145,71 @@ g();
118145

119146

120147

148+
[#h]
149+
== h
150+
151+
A function with a list inside a note.
152+
153+
=== Synopsis
154+
155+
Declared in `<markdown‐list.cpp>`
156+
157+
[source,cpp,subs="verbatim,replacements,macros,-callouts"]
158+
----
159+
void
160+
h();
161+
----
162+
163+
=== Description
164+
165+
[NOTE]
166+
====
167+
Important points:
168+
169+
* First point.
170+
* Second point.
171+
172+
====
173+
174+
[#i]
175+
== i
176+
177+
Marker with styled continuation only.
178+
179+
=== Synopsis
180+
181+
Declared in `<markdown‐list.cpp>`
182+
183+
[source,cpp,subs="verbatim,replacements,macros,-callouts"]
184+
----
185+
void
186+
i();
187+
----
188+
189+
=== Description
190+
191+
* *All bold item.*
192+
* `All code item.`
193+
194+
[#j]
195+
== j
196+
197+
Brief text.
198+
199+
=== Synopsis
200+
201+
Declared in `<markdown‐list.cpp>`
202+
203+
[source,cpp,subs="verbatim,replacements,macros,-callouts"]
204+
----
205+
void
206+
j();
207+
----
208+
209+
=== Description
210+
211+
* `foo` does something.
212+
* `bar` does something else.
213+
121214

122215
[.small]#Created with https://www.mrdocs.com[MrDocs]#

test-files/golden-tests/javadoc/markdown-list/markdown-list.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ class A;
1616
*/
1717
class B;
1818

19+
/** A list with no preceding text.
20+
21+
- First item.
22+
- Second item.
23+
*/
24+
class C;
25+
1926
/** A list with Markdown bold and code.
2027
2128
This is a list:
@@ -32,3 +39,25 @@ void f();
3239
- This `is` another list item.
3340
*/
3441
void g();
42+
43+
/** A function with a list inside a note.
44+
45+
@note Important points:
46+
- First point.
47+
- Second point.
48+
*/
49+
void h();
50+
51+
/** Marker with styled continuation only.
52+
53+
- **All bold item.**
54+
- `All code item.`
55+
*/
56+
void i();
57+
58+
/** Brief text.
59+
60+
- @c foo does something.
61+
- @c bar does something else.
62+
*/
63+
void j();

test-files/golden-tests/javadoc/markdown-list/markdown-list.html

Lines changed: 116 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ <h2>
2222
<tbody>
2323
<tr>
2424
<td><a href="#A"><code>A</code></a> </td><td>A simple list with Markdown bold.</td></tr><tr>
25-
<td><a href="#B"><code>B</code></a> </td><td>A list with inline code and list items containing &quot;- &quot;.</td></tr>
25+
<td><a href="#B"><code>B</code></a> </td><td>A list with inline code and list items containing &quot;- &quot;.</td></tr><tr>
26+
<td><a href="#C"><code>C</code></a> </td><td>A list with no preceding text.</td></tr>
2627
</tbody>
2728
</table>
2829

@@ -37,7 +38,10 @@ <h2>
3738
<tbody>
3839
<tr>
3940
<td><a href="#f"><code>f</code></a> </td><td>A list with Markdown bold and code.</td></tr><tr>
40-
<td><a href="#g"><code>g</code></a> </td><td>A list with Markdown code and a nested list.</td></tr>
41+
<td><a href="#g"><code>g</code></a> </td><td>A list with Markdown code and a nested list.</td></tr><tr>
42+
<td><a href="#h"><code>h</code></a> </td><td>A function with a list inside a note.</td></tr><tr>
43+
<td><a href="#i"><code>i</code></a> </td><td>Marker with styled continuation only.</td></tr><tr>
44+
<td><a href="#j"><code>j</code></a> </td><td>Brief text.</td></tr>
4145
</tbody>
4246
</table>
4347

@@ -101,6 +105,33 @@ <h3>
101105
</ul></div>
102106

103107

108+
</div>
109+
<div>
110+
<div>
111+
<h2 id="C">
112+
C</h2>
113+
<div>
114+
<p>A list with no preceding text.</p>
115+
</div>
116+
</div>
117+
<div>
118+
<h3>
119+
Synopsis</h3>
120+
<div>
121+
Declared in <code>&lt;markdown-list.cpp&gt;</code></div>
122+
<pre><code class="source-code cpp">class C;</code></pre>
123+
</div>
124+
<div>
125+
<h3>
126+
Description</h3>
127+
<ul>
128+
<li><p>First item.</p>
129+
</li>
130+
<li><p>Second item.</p>
131+
</li>
132+
</ul></div>
133+
134+
104135
</div>
105136
<div>
106137
<div>
@@ -158,6 +189,89 @@ <h2>
158189
</ul></li>
159190
</ul></div>
160191
</div>
192+
<div>
193+
<div>
194+
<h2 id="h">
195+
h</h2>
196+
<div>
197+
<p>A function with a list inside a note.</p>
198+
</div>
199+
</div>
200+
<div>
201+
<h3>
202+
Synopsis</h3>
203+
<div>
204+
Declared in <code>&lt;markdown-list.cpp&gt;</code></div>
205+
<pre><code class="source-code cpp">void
206+
h();</code></pre>
207+
</div>
208+
<div>
209+
<h3>
210+
Description</h3>
211+
<div class="admonition">
212+
<h4>NOTE</h4>
213+
<div>
214+
<p>Important points:</p>
215+
<ul>
216+
<li><p>First point.</p>
217+
</li>
218+
<li><p>Second point.</p>
219+
</li>
220+
</ul></div>
221+
</div></div>
222+
</div>
223+
<div>
224+
<div>
225+
<h2 id="i">
226+
i</h2>
227+
<div>
228+
<p>Marker with styled continuation only.</p>
229+
</div>
230+
</div>
231+
<div>
232+
<h3>
233+
Synopsis</h3>
234+
<div>
235+
Declared in <code>&lt;markdown-list.cpp&gt;</code></div>
236+
<pre><code class="source-code cpp">void
237+
i();</code></pre>
238+
</div>
239+
<div>
240+
<h3>
241+
Description</h3>
242+
<ul>
243+
<li><p><strong>All bold item.</strong></p>
244+
</li>
245+
<li><p><code>All code item.</code></p>
246+
</li>
247+
</ul></div>
248+
</div>
249+
<div>
250+
<div>
251+
<h2 id="j">
252+
j</h2>
253+
<div>
254+
<p>Brief text.</p>
255+
</div>
256+
</div>
257+
<div>
258+
<h3>
259+
Synopsis</h3>
260+
<div>
261+
Declared in <code>&lt;markdown-list.cpp&gt;</code></div>
262+
<pre><code class="source-code cpp">void
263+
j();</code></pre>
264+
</div>
265+
<div>
266+
<h3>
267+
Description</h3>
268+
<ul>
269+
<li><p><code>foo</code> does something.</p>
270+
</li>
271+
<li><p><code>bar</code> does something else.</p>
272+
</li>
273+
</ul></div>
274+
</div>
161275

162276
</div>
163277
<footer class="mrdocs-footer">

0 commit comments

Comments
 (0)