|
From: <be...@us...> - 2007-04-19 23:41:03
|
Revision: 295
http://svn.sourceforge.net/qalab/?rev=295&view=rev
Author: benoitx
Date: 2007-04-19 16:40:58 -0700 (Thu, 19 Apr 2007)
Log Message:
-----------
Re-written the FindBugs merger in order to cope with both XDOC and XML outputs from Findbugs.
and it does it transparently... how cool is that! :-)
Modified Paths:
--------------
trunk/qalab/qalab.xml
trunk/qalab/src/site/changes.xml
trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java
Modified: trunk/qalab/qalab.xml
===================================================================
--- trunk/qalab/qalab.xml 2007-04-09 14:09:02 UTC (rev 294)
+++ trunk/qalab/qalab.xml 2007-04-19 23:40:58 UTC (rev 295)
@@ -2847,6 +2847,8 @@
<result date="2007-04-06" statvalue="96" type="cobertura-branch"/>
<result date="2007-04-06" statvalue="1" type="pmd"/>
<result date="2007-04-09" statvalue="1" type="findbugs"/>
+ <result date="2007-04-09" statvalue="6" type="findbugs"/>
+ <result date="2007-04-09" statvalue="1" type="findbugs"/>
<result date="2007-04-09" statvalue="19" type="checkstyle"/>
<result date="2007-04-09" statvalue="6" type="findbugs"/>
<result date="2007-04-09" statvalue="1" type="findbugs"/>
Modified: trunk/qalab/src/site/changes.xml
===================================================================
--- trunk/qalab/src/site/changes.xml 2007-04-09 14:09:02 UTC (rev 294)
+++ trunk/qalab/src/site/changes.xml 2007-04-19 23:40:58 UTC (rev 295)
@@ -29,7 +29,8 @@
<author email="qa...@ob...">Benoit Xhenseval</author>
</properties>
<body>
- <release version="1.1" date="in SVN" description="Maintenance + Spider chart">
+ <release version="1.1" date="in SVN" description="Maintenance + Spider chart + Emma + FindBugs xml">
+ <action dev="benoitx" type="add">Re-written the FindBugs StatMerge to cope transparently with the XDOC or XML generated by FindBugs. Thanks to John Brugge and Danilo Stitz for the test files.</action>
<action dev="benoitx" type="add" issue="1607990" due-to="Robert Crawford">Added support for <a href="http://emma.sourceforge.net">Emma</a>.</action>
<action dev="benoitx" type="add">New version 1.2 for qalab.xml, the migration is transparent and adds 'project' and 'module' attributes on summaryresult and file
in order to move towards a consolidated qalab.xml (also required by the DB export).</action>
Modified: trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java
===================================================================
--- trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java 2007-04-09 14:09:02 UTC (rev 294)
+++ trunk/qalab/src/test/java/net/objectlab/qalab/parser/FindBugsStatMergeTest.java 2007-04-19 23:40:58 UTC (rev 295)
@@ -43,6 +43,7 @@
import net.objectlab.qalab.exporter.ConsoleExporter;
import net.objectlab.qalab.exporter.QALabXMLExporter;
+import net.objectlab.qalab.util.ConsoleLogger;
import net.objectlab.qalab.util.SilentLogger;
import org.xml.sax.InputSource;
@@ -75,23 +76,17 @@
*/
public void testMergeWithConsole() {
try {
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), new ConsoleExporter());
- }
- catch (IllegalAccessException e) {
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), new ConsoleExporter());
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -103,43 +98,33 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "empty-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
checkSummary(exporter.getDocument(), 1, 3, 2);
checkFileCount(exporter.getDocument(), 2, 3);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -153,8 +138,7 @@
File file = new File(fileName);
if (file.exists()) {
- assertTrue("Delete File: " + file.getAbsolutePath(),
- file.delete());
+ assertTrue("Delete File: " + file.getAbsolutePath(), file.delete());
}
Properties properties = new Properties();
@@ -166,24 +150,19 @@
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
- System.out.println(streamToString(exporter.getDocument()));
+ // System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
checkSummary(exporter.getDocument(), 1, 3, 2);
checkFileCount(exporter.getDocument(), 2, 3);
@@ -191,20 +170,15 @@
exporter.save();
if (file.exists()) {
- assertTrue("Delete File at the end: " + file.getAbsolutePath(),
- file.delete());
+ assertTrue("Delete File at the end: " + file.getAbsolutePath(), file.delete());
}
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
- }
- catch (IOException e) {
+ } catch (IOException e) {
fail(e.toString());
}
}
@@ -216,44 +190,34 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "empty-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "findbugs-noviolations.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("findbugs-noviolations.xml")), exporter);
checkDTDPresent(exporter.getDocument());
checkSummary(exporter.getDocument(), 0, 0, 0);
checkFileCount(exporter.getDocument(), 0, 0);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -265,45 +229,34 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "one-set-findbugs-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "one-set-findbugs-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "findbugs-noviolations.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("findbugs-noviolations.xml")), exporter);
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 1, new int[] { 3 },
- new int[] { 2 }, new String[] { "findbugs" });
+ checkSummary(exporter.getDocument(), 1, new int[] { 3 }, new int[] { 2 }, new String[] { "findbugs" });
checkFileCount(exporter.getDocument(), 2, 3);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
}
@@ -315,52 +268,38 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "one-set-findbugs-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "one-set-findbugs-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
- exporter.setQuiet(true);
- exporter.setTaskLogger(new SilentLogger());
+ exporter.setQuiet(false);
+ exporter.setTaskLogger(new ConsoleLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
- System.out.println(streamToString(exporter.getDocument()));
+ // System.out.println(streamToString(exporter.getDocument()));
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 2, new int[] { 3, 3 },
- new int[] { 2, 2 }, new String[] { "findbugs", "findbugs" });
+ checkSummary(exporter.getDocument(), 2, new int[] { 3, 3 }, new int[] { 2, 2 }, new String[] { "findbugs", "findbugs" });
checkFileCount(exporter.getDocument(), 2, 6);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
- }
- catch (InstantiationException e) {
+ } catch (InstantiationException e) {
fail(e.toString());
}
- catch (IOException e) {
- fail(e.toString());
- }
}
/**
@@ -370,53 +309,125 @@
try {
Properties properties = new Properties();
- properties.setProperty("qalab.merge.output.resourcename",
- "one-set-checkstyle-stats.xml");
- properties.setProperty("qalab.merge.output.classname",
- "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+ properties.setProperty("qalab.merge.output.resourcename", "one-set-checkstyle-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
QALabXMLExporter exporter = new QALabXMLExporter();
exporter.setQuiet(true);
exporter.setTaskLogger(new SilentLogger());
- StatMerger merger = (StatMerger) Class.forName(
- "net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
merger.setQuiet(false);
merger.setSrcDir("src/main/java");
merger.setTaskLogger(new SilentLogger());
- properties.setProperty("qalab.merge.output.timestamp",
- merger.getMergerTimeStamp());
- properties.setProperty("qalab.merge.type",
- merger.getType());
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
exporter.configure(properties);
- merger.mergeStats(new InputSource(
- FindBugsStatMergeTest.class.getResourceAsStream(
- "good-findbugs.xml")), exporter);
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("good-findbugs.xml")), exporter);
- System.out.println(streamToString(exporter.getDocument()));
-
checkDTDPresent(exporter.getDocument());
- checkSummary(exporter.getDocument(), 2, new int[] { 168, 3 },
- new int[] { 25, 2 }, new String[] { "checkstyle", "findbugs" });
+ checkSummary(exporter.getDocument(), 2, new int[] { 168, 3 }, new int[] { 25, 2 }, new String[] { "checkstyle", "findbugs" });
checkFileCount(exporter.getDocument(), 7, 171);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
fail(e.toString());
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
fail(e.toString());
+ } catch (InstantiationException e) {
+ fail(e.toString());
}
- catch (InstantiationException e) {
+ }
+
+ /**
+ * test simple merge with the OLD FindBugs XDOC format and empty qalab.
+ */
+ public void testMergeEmptyFindBugsXDOCForCommonsLang() {
+ try {
+ Properties properties = new Properties();
+
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+
+ QALabXMLExporter exporter = new QALabXMLExporter();
+
+ exporter.setQuiet(true);
+ exporter.setTaskLogger(new SilentLogger());
+
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+
+ merger.setQuiet(true);
+ merger.setSrcDir("src/main/java");
+ merger.setTaskLogger(new SilentLogger());
+
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
+ exporter.configure(properties);
+
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("commons-lang-2.3-findbugs-feedback-xdoc.xml")),
+ exporter);
+
+ // System.out.println(streamToString(exporter.getDocument()));
+
+ checkDTDPresent(exporter.getDocument());
+ checkSummary(exporter.getDocument(), 1, new int[] { 24 }, new int[] { 18 }, new String[] { "findbugs" });
+ checkFileCount(exporter.getDocument(), 18, 24);
+ } catch (IllegalAccessException e) {
fail(e.toString());
+ } catch (ClassNotFoundException e) {
+ fail(e.toString());
+ } catch (InstantiationException e) {
+ fail(e.toString());
+ // } catch (IOException e) {
+ // fail(e.toString());
}
- catch (IOException e) {
+ }
+
+ /**
+ * test simple merge with the NEW FindBugs XML format and empty qalab.
+ */
+ public void testMergeEmptyFindBugsXMLForCommonsLang() {
+ try {
+ Properties properties = new Properties();
+
+ properties.setProperty("qalab.merge.output.resourcename", "empty-stats.xml");
+ properties.setProperty("qalab.merge.output.classname", "net.objectlab.qalab.parser.FindBugsStatMergeTest");
+
+ QALabXMLExporter exporter = new QALabXMLExporter();
+
+ exporter.setQuiet(true);
+ exporter.setTaskLogger(new ConsoleLogger());
+
+ StatMerger merger = (StatMerger) Class.forName("net.objectlab.qalab.parser.FindBugsStatMerge").newInstance();
+
+ merger.setQuiet(true);
+ merger.setSrcDir("src/main/java");
+ merger.setTaskLogger(new ConsoleLogger());
+
+ properties.setProperty("qalab.merge.output.timestamp", merger.getMergerTimeStamp());
+ properties.setProperty("qalab.merge.type", merger.getType());
+ exporter.configure(properties);
+
+ merger.mergeStats(new InputSource(FindBugsStatMergeTest.class.getResourceAsStream("commons-lang-2.3-findbugs-feedback.xml")), exporter);
+
+ // System.out.println(streamToString(exporter.getDocument()));
+
+ checkDTDPresent(exporter.getDocument());
+ checkSummary(exporter.getDocument(), 1, new int[] { 24 }, new int[] { 18 }, new String[] { "findbugs" });
+ checkFileCount(exporter.getDocument(), 18, 24);
+ } catch (IllegalAccessException e) {
fail(e.toString());
+ } catch (ClassNotFoundException e) {
+ fail(e.toString());
+ } catch (InstantiationException e) {
+ fail(e.toString());
+ // } catch (IOException e) {
+ // fail(e.toString());
}
}
+
}
/*
* ObjectLab is sponsoring QALab
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|