aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java22
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java2
-rw-r--r--org.jacoco.doc/xsl/cli.xsl17
3 files changed, 33 insertions, 8 deletions
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java
index 89644c41..e721129b 100644
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java
+++ b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java
@@ -117,4 +117,26 @@ public class ReportTest extends CommandTestBase {
.isFile());
}
+ @Test
+ public void should_use_all_values_when_multiple_classfiles_options_are_provided()
+ throws Exception {
+ File html = new File(tmp.getRoot(), "coverage");
+
+ final String c1 = getClassPath()
+ + "/org/jacoco/cli/internal/commands/ReportTest.class";
+ final String c2 = getClassPath()
+ + "/org/jacoco/cli/internal/commands/DumpTest.class";
+
+ execute("report", "-classfiles", c1, "-classfiles", c2, "-html",
+ html.getAbsolutePath());
+
+ assertOk();
+ assertTrue(html.isDirectory());
+ assertTrue(new File(html,
+ "org.jacoco.cli.internal.commands/ReportTest.html").isFile());
+ assertTrue(
+ new File(html, "org.jacoco.cli.internal.commands/DumpTest.html")
+ .isFile());
+ }
+
}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java b/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java
index e10e847e..42c74903 100644
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java
+++ b/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java
@@ -43,6 +43,8 @@ public class XmlDocumentation {
for (final OptionHandler<?> o : list) {
final XMLElement optionNode = parent.element("option");
optionNode.attr("required", String.valueOf(o.option.required()));
+ optionNode.attr("multiple",
+ String.valueOf(o.setter.isMultiValued()));
optionNode.element("usage").text(o.getNameAndMeta(null));
optionNode.element("description").text(o.option.usage());
}
diff --git a/org.jacoco.doc/xsl/cli.xsl b/org.jacoco.doc/xsl/cli.xsl
index 6823a6bb..644d92d1 100644
--- a/org.jacoco.doc/xsl/cli.xsl
+++ b/org.jacoco.doc/xsl/cli.xsl
@@ -58,6 +58,12 @@
<a href="integrations.html">integrations</a> with various
build tools.
</p>
+
+ <p>
+ The following commands are available. Each command has a
+ list of optional and required parameters. Some parameters
+ can be specified multiple times to provide multiple values.
+ </p>
<xsl:apply-templates select="documentation" />
</div>
<div class="footer">
@@ -87,6 +93,7 @@
<td>Option</td>
<td>Description</td>
<td>Required</td>
+ <td>Multiple</td>
</tr>
</thead>
<tbody>
@@ -94,14 +101,8 @@
<tr>
<td><code><xsl:value-of select="usage" /></code></td>
<td><xsl:value-of select="description" /></td>
- <td><xsl:choose>
- <xsl:when test="@required = 'true'">
- yes
- </xsl:when>
- <xsl:otherwise>
- no
- </xsl:otherwise>
- </xsl:choose></td>
+ <td style="text-align:center"><xsl:if test="@required = 'true'">&#x25fc;</xsl:if></td>
+ <td style="text-align:center"><xsl:if test="@multiple = 'true'">&#x25fc;</xsl:if></td>
</tr>
</xsl:for-each>
</tbody>