You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2016/12/31 05:51:20 UTC

maven-surefire git commit: [SUREFIRE-1310] ForkClient should handle only one channel-id

Repository: maven-surefire
Updated Branches:
  refs/heads/master df7e143c2 -> 27fbe2c19


[SUREFIRE-1310] ForkClient should handle only one channel-id


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/27fbe2c1
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/27fbe2c1
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/27fbe2c1

Branch: refs/heads/master
Commit: 27fbe2c190a204e19dc42c86e9769bf384e7ec91
Parents: df7e143
Author: Tibor17 <ti...@lycos.com>
Authored: Sat Dec 31 06:46:06 2016 +0100
Committer: Tibor17 <ti...@lycos.com>
Committed: Sat Dec 31 06:46:06 2016 +0100

----------------------------------------------------------------------
 .../booterclient/output/ForkClient.java         | 37 ++++++++++++--------
 1 file changed, 23 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/27fbe2c1/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
index d0aecf9..68ce40d 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
@@ -79,8 +79,6 @@ public class ForkClient
     private static final long START_TIME_ZERO = 0L;
     private static final long START_TIME_NEGATIVE_TIMEOUT = -1L;
 
-    private final RunListener testSetReporter;
-
     private final DefaultReporterFactory defaultReporterFactory;
 
     private final Properties testVmSystemProperties;
@@ -97,6 +95,8 @@ public class ForkClient
 
     private final ConsoleLogger log;
 
+    private RunListener testSetReporter;
+
     private volatile boolean saidGoodBye;
 
     private volatile StackTraceWriter errorInFork;
@@ -104,7 +104,6 @@ public class ForkClient
     public ForkClient( DefaultReporterFactory defaultReporterFactory, Properties testVmSystemProperties,
                        NotifiableTestStream notifiableTestStream, ConsoleLogger log )
     {
-        testSetReporter = defaultReporterFactory.createReporter();
         this.defaultReporterFactory = defaultReporterFactory;
         this.testVmSystemProperties = testVmSystemProperties;
         this.notifiableTestStream = notifiableTestStream;
@@ -168,6 +167,15 @@ public class ForkClient
         return testSetStartedAt.get() == START_TIME_NEGATIVE_TIMEOUT;
     }
 
+    private RunListener getTestSetReporter()
+    {
+        if ( testSetReporter == null )
+        {
+            testSetReporter = defaultReporterFactory.createReporter();
+        }
+        return testSetReporter;
+    }
+
     private void processLine( String s )
     {
         try
@@ -185,49 +193,49 @@ public class ForkClient
             switch ( operationId )
             {
                 case BOOTERCODE_TESTSET_STARTING:
-                    testSetReporter.testSetStarting( createReportEntry( remaining ) );
+                    getTestSetReporter().testSetStarting( createReportEntry( remaining ) );
                     setCurrentStartTime();
                     break;
                 case BOOTERCODE_TESTSET_COMPLETED:
                     testsInProgress.clear();
                     
-                    testSetReporter.testSetCompleted( createReportEntry( remaining ) );
+                    getTestSetReporter().testSetCompleted( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_TEST_STARTING:
                     ReportEntry reportEntry = createReportEntry( remaining );
                     testsInProgress.offer( reportEntry.getSourceName() );
                     
-                    testSetReporter.testStarting( createReportEntry( remaining ) );
+                    getTestSetReporter().testStarting( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_TEST_SUCCEEDED:
                     reportEntry = createReportEntry( remaining );
                     testsInProgress.remove( reportEntry.getSourceName() );
                     
-                    testSetReporter.testSucceeded( createReportEntry( remaining ) );
+                    getTestSetReporter().testSucceeded( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_TEST_FAILED:
                     reportEntry = createReportEntry( remaining );
                     testsInProgress.remove( reportEntry.getSourceName() );
                     
-                    testSetReporter.testFailed( createReportEntry( remaining ) );
+                    getTestSetReporter().testFailed( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_TEST_SKIPPED:
                     reportEntry = createReportEntry( remaining );
                     testsInProgress.remove( reportEntry.getSourceName() );
                     
-                    testSetReporter.testSkipped( createReportEntry( remaining ) );
+                    getTestSetReporter().testSkipped( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_TEST_ERROR:
                     reportEntry = createReportEntry( remaining );
                     testsInProgress.remove( reportEntry.getSourceName() );
                     
-                    testSetReporter.testError( createReportEntry( remaining ) );
+                    getTestSetReporter().testError( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_TEST_ASSUMPTIONFAILURE:
                     reportEntry = createReportEntry( remaining );
                     testsInProgress.remove( reportEntry.getSourceName() );
                     
-                    testSetReporter.testAssumptionFailure( createReportEntry( remaining ) );
+                    getTestSetReporter().testAssumptionFailure( createReportEntry( remaining ) );
                     break;
                 case BOOTERCODE_SYSPROPS:
                     int keyEnd = remaining.indexOf( "," );
@@ -373,22 +381,23 @@ public class ForkClient
 
     /**
      * Used when getting reporters on the plugin side of a fork.
+     * Used by testing purposes only. May not be volatile variable.
      *
      * @return A mock provider reporter
      */
     public final RunListener getReporter()
     {
-        return testSetReporter;
+        return getTestSetReporter();
     }
 
     private ConsoleOutputReceiver getOrCreateConsoleOutputReceiver()
     {
-        return (ConsoleOutputReceiver) testSetReporter;
+        return (ConsoleOutputReceiver) getTestSetReporter();
     }
 
     private ConsoleLogger getOrCreateConsoleLogger()
     {
-        return (ConsoleLogger) testSetReporter;
+        return (ConsoleLogger) getTestSetReporter();
     }
 
     public void close( boolean hadTimeout )