hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lee Tucker (JIRA)" <j...@apache.org>
Subject [jira] Created: (HADOOP-6340) Change build/test/clean targets to prevent tar target from including clover instrumented code
Date Wed, 28 Oct 2009 15:41:59 GMT
Change build/test/clean targets to prevent tar target from including clover instrumented code
---------------------------------------------------------------------------------------------

                 Key: HADOOP-6340
                 URL: https://issues.apache.org/jira/browse/HADOOP-6340
             Project: Hadoop Common
          Issue Type: Improvement
          Components: build
    Affects Versions: 0.20.1
            Reporter: Lee Tucker
            Assignee: Giridharan Kesavan
             Fix For: 0.21.0, 0.22.0


Currently the clover targets in build.xml cause the code generated in the build root to contain
clover instrumented code.   Should the tar target be called, this instrumented code is packaged
up and made part of what would be delivered to the grid for use.   Installing cloverized code
on real clusters is generally a very bad idea unless it's done with significant upfront thought.
  

I propose that we alter the targets so that when clover is enabled, the compile target does
two passes.   The first would generate the uninstrumented code in the standard build root.
 The second pass would then generate clover instrumented code in a build-clover build root.
 That way, the tar target would only pick up uninstrumented code.   I strongly suggest a 2
pass compile, and not a different target, because you never want the two sets of objects to
be out of sync.  (For instance, you might want to run the clover instrumented unit tests,
and then package the uninstrumented code to be delivered to the next step in your QA/Release
process.)

The test targets would also need to be altered.  I'd propose that the test results still be
placed in their current location in the build root, regardless of whether the tests were run
with instrumented or uninstrumented code.   This means that when clover is enabled, that the
test target would execute against the objects in build-clover, but report results in build.
 (This would allow currently existing test infrastructure to continue to report results without
modification.)

The clean target(s) would also need to be enhanced to clean out both build roots.

The only drawback to this approach I can see is that if you wanted to produce instrumented
code to be delivered to a real grid, you'd have to create the package from build-clover instead
of build manually, or we'd have to add a "tar-with-clover" target that did it for you.

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


Mime
View raw message