[ https://issues.apache.org/jira/browse/GEODE-9924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17472190#comment-17472190 ]
ASF subversion and git services commented on GEODE-9924: -------------------------------------------------------- Commit 0f9f23736edea3be62bb0add94a9076009dafc81 in geode's branch refs/heads/develop from Dale Emery [ https://gitbox.apache.org/repos/asf?p=geode.git;h=0f9f237 ] GEODE-9924: Avoid merging repeat test logs (#7246) PROBLEM Our repeat test tasks merge the output from all executions of a given test class, making it very difficult to diagnose failures in repeat tests. CAUSE In order to run tests repeatedly, our repeat test tasks override Gradle code to allow a test class to execute more than once. Gradle's test reporting code does not expect this. It directs the output from each test to a log associated with the test class name, not with the specific execution of the test class. This results in merging the outputs from different executions of the same class. SOLUTION Change Gradle to distinguish separate executions of a test class, and to log the output from each execution separately. Components: - New `ExecutionTrackingTestResultProcessor` class: Wraps a given test result processor to append an execution identifier (a simple counter) to the name of the test class when reporting results. Gradle associates the output with this execution-specific name instead of with the class name. - New `ExecutionTrackingTestClassProcessor` class: Wraps a given test class processor to report via an `ExecutionTrackingTestResultProcessor`. - Change `RepeatTestExecuter` to use an `ExecutionTrackingTestClassProcessor`. This commit also reverts GEODE-9912, which partially addressed the same problem by adding an execution ID to each log line from a DUnit ChildVM. The execution ID made it possible to identify the source of each merged log line. GEODE-9924 (this commit) makes the changes from GEODE-9912 unnecessary. NOTES - Gradle now creates distinct XML and HTML report files for each execution of a given test class. - The test summary HTML page created by Gradle lists each test class execution separately. If a class named `FooTest` executes 50 times (as in a stress test run), the summary will list `FooTest-01`, `FooTest-02`, ..., `FooTest-50` as if they were separate test classes. > Make repeat tests log each test class instance separately > --------------------------------------------------------- > > Key: GEODE-9924 > URL: https://issues.apache.org/jira/browse/GEODE-9924 > Project: Geode > Issue Type: Test > Components: tests > Reporter: Dale Emery > Assignee: Dale Emery > Priority: Major > Labels: GeodeOperationAPI, pull-request-available > > Currently, our repeat test tasks merge the output from all executions of a > given test class, making it very difficult to diagnose failures in repeat > tests. > CAUSE: > In order to run tests repeatedly, our repeat test tasks override Gradle code > to allow a test class to execute more than once. > Gradle directs the output from each test to a log associated with the test > class name. > SOLUTION: > Change Gradle to distinguish separate executions of a test class, and to log > the output from each execution separately. This can be done by using a custom > "test result processor" that appends an iteration counter to the end of the > test class name before processing the result. -- This message was sent by Atlassian Jira (v8.20.1#820001)