lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] Commented: (LUCENE-1769) Fix wrong clover analysis because of backwards-tests, upgrade clover to 2.4.3 or better
Date Tue, 04 Aug 2009 08:35:14 GMT


Uwe Schindler commented on LUCENE-1769:

bq. I only want to remove the call to the (I call it deprecated "nightly" target, which is
a relict from the time before Hudson and replace by "package" in the first run and to "ant
test" for the clover enabled version. The build would run two times faster.

But then we would be "publishing" artifacts before testing them.  that was the whole point
behind the double run when clover was first introduced: run the tests to ensure there *should*
be a build, then produce the build artifacts, then run reports against the build.

i don't disagree with your goal: if we can eliminate the double test run that would be great,
i'm just explaining why it is the way it is, and why removing that middle step will result
in a process which isn't equivalent.

I agree, the solution for this would be to reorder the build steps. As far as I know (I have
seen this from the previous hudson builds), the build process will stop, if  of two separate
ANT runs the first one failes (I assume, hudson checks the exit code). If this is the case,
the order could be changed to:

- Checkout svn 
- Build the source package with ant 
- "ant test" with clover enabled 
- build the clover report 
- "ant clean"
- Build the maven artifacts (which compiles all classes) 
- "ant package" is called, which builds the binary package

> Fix wrong clover analysis because of backwards-tests, upgrade clover to 2.4.3 or better
> ---------------------------------------------------------------------------------------
>                 Key: LUCENE-1769
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 2.9
>            Reporter: Uwe Schindler
>         Attachments: clover.license, LUCENE-1769.patch, LUCENE-1769.patch, nicks-LUCENE-1769.patch
> This is a followup for []
> The problem with clover running on hudson is, that it does not instrument all tests ran.
The autodetection of clover 1.x is not able to find out which files are the correct tests
and only instruments the backwards test. Because of this, the current coverage report is only
from the backwards tests running against the current Lucene JAR.
> You can see this, if you install clover and start the tests. During test-core no clover
data is added to the db, only when backwards-tests begin, new files are created in the clover
db folder.
> Clover 2.x supports a new ant task, <testsources> that can be used to specify the
files, that are the tests. It works here locally with clover 2.4.3 and produces a really nice
coverage report, also linking with test files work, it tells which tests failed and so on.
> I will attach a patch, that changes common-build.xml to the new clover version (other
initialization resource) and tells clover where to find the tests (using the test folder include/exclude
> One problem with the current patch: It does *not* instrument the backwards branch, so
you see only coverage of the core/contrib tests. Getting the coverage also from the backwards
tests is not easy possible because of two things:
> - the tag test dir is not easy to find out and add to <testsources> element (there
may be only one of them)
> - the test names in BW branch are identical to the trunk tests. This completely corrupts
the linkage between tests and code in the coverage report.
> In principle the best would be to generate a second coverage report for the backwards
branch with a separate clover DB. The attached patch does not instrument the bw branch, it
only does trunk tests.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message