[ 
https://issues.apache.org/jira/browse/HADOOP-6340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Allen Wittenauer resolved HADOOP-6340.
--------------------------------------

    Resolution: Won't Fix

> 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
>
> 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 was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to