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 2015/12/04 23:40:37 UTC
maven-surefire git commit: [SUREFIRE-1197] Surefire 2.19 breaks tests
under Windows due to fork problem
Repository: maven-surefire
Updated Branches:
refs/heads/master 0bf7e3436 -> c733075bc
[SUREFIRE-1197] Surefire 2.19 breaks tests under Windows due to fork problem
Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/c733075b
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/c733075b
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/c733075b
Branch: refs/heads/master
Commit: c733075bc90bcd6e07cdc60c24fa5c833e14cf6e
Parents: 0bf7e34
Author: Tibor17 <ti...@lycos.com>
Authored: Fri Dec 4 23:38:00 2015 +0100
Committer: Tibor17 <ti...@lycos.com>
Committed: Fri Dec 4 23:38:00 2015 +0100
----------------------------------------------------------------------
.../maven/surefire/booter/ForkedBooter.java | 16 ++--
.../maven/surefire/junit4/JUnit4Provider.java | 9 --
.../surefire/junitcore/JUnitCoreProvider.java | 9 --
.../maven/surefire/testng/TestNGProvider.java | 98 ++++++++------------
4 files changed, 50 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c733075b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
----------------------------------------------------------------------
diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
index ba1c9b7..a63445d 100644
--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
+++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
@@ -139,7 +139,7 @@ public final class ForkedBooter
encodeAndWriteToOutput( ( (char) BOOTERCODE_BYE ) + ",0,BYE!\n", originalOut );
originalOut.flush();
// noinspection CallToSystemExit
- exit( 0, EXIT, reader );
+ exit( 0, EXIT, reader, false );
}
catch ( Throwable t )
{
@@ -147,7 +147,7 @@ public final class ForkedBooter
// noinspection UseOfSystemOutOrSystemErr
t.printStackTrace( System.err );
// noinspection ProhibitedExceptionThrown,CallToSystemExit
- exit( 1, EXIT, reader );
+ exit( 1, EXIT, reader, false );
}
finally
{
@@ -186,7 +186,7 @@ public final class ForkedBooter
{
public void update( Command command )
{
- exit( 1, command.toShutdownData(), reader );
+ exit( 1, command.toShutdownData(), reader, true );
}
};
}
@@ -200,7 +200,7 @@ public final class ForkedBooter
boolean hasPing = pingDone.getAndSet( false );
if ( !hasPing )
{
- exit( 1, KILL, reader );
+ exit( 1, KILL, reader, true );
}
}
};
@@ -212,15 +212,17 @@ public final class ForkedBooter
out.write( encodeBytes, 0, encodeBytes.length );
}
- private static void exit( int returnCode, Shutdown shutdownType, CommandReader reader )
+ private static void exit( int returnCode, Shutdown shutdownType, CommandReader reader, boolean stopReaderOnExit )
{
switch ( shutdownType )
{
case KILL:
- reader.stop();
Runtime.getRuntime().halt( returnCode );
case EXIT:
- reader.stop();
+ if ( stopReaderOnExit )
+ {
+ reader.stop();
+ }
launchLastDitchDaemonShutdownThread( returnCode );
System.exit( returnCode );
case DEFAULT:
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c733075b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
----------------------------------------------------------------------
diff --git a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
index 85b2a98..f7a6e30 100644
--- a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
+++ b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
@@ -189,7 +189,6 @@ public class JUnit4Provider
{
notifier.fireTestRunFinished( result );
notifier.removeListeners();
- closeCommandsReader();
}
rethrowAnyTestMechanismFailures( result );
@@ -216,14 +215,6 @@ public class JUnit4Provider
return isFailFast() && !isRerunFailingTests() ? providerParameters.getSkipAfterFailureCount() : 0;
}
- private void closeCommandsReader()
- {
- if ( commandsReader != null )
- {
- commandsReader.stop();
- }
- }
-
private CommandListener registerPleaseStopJunitListener( final Notifier notifier )
{
CommandListener listener = new CommandListener()
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c733075b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
----------------------------------------------------------------------
diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
index 5e03bff..9b3e9a7 100644
--- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
+++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
@@ -197,7 +197,6 @@ public class JUnitCoreProvider
{
runResult = reporterFactory.close();
notifier.removeListeners();
- closeCommandsReader();
}
return runResult;
}
@@ -217,14 +216,6 @@ public class JUnitCoreProvider
return isFailFast() && !isRerunFailingTests() ? providerParameters.getSkipAfterFailureCount() : 0;
}
- private void closeCommandsReader()
- {
- if ( commandsReader != null )
- {
- commandsReader.stop();
- }
- }
-
private CommandListener registerPleaseStopJunitListener( final Notifier stoppable )
{
CommandListener listener = new CommandListener()
http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/c733075b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
----------------------------------------------------------------------
diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
index 5444fde..3b263a4 100644
--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
+++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
@@ -89,78 +89,70 @@ public class TestNGProvider
public RunResult invoke( Object forkTestSet )
throws TestSetFailedException
{
+ if ( isFailFast() && commandsReader != null )
+ {
+ registerPleaseStopListener();
+ }
+
+ if ( commandsReader != null )
+ {
+ commandsReader.awaitStarted();
+ }
+
+ final ReporterFactory reporterFactory = providerParameters.getReporterFactory();
RunResult runResult;
+
try
{
- if ( isFailFast() && commandsReader != null )
- {
- registerPleaseStopListener();
- }
- if ( commandsReader != null )
+ if ( isTestNGXmlTestSuite( testRequest ) )
{
- commandsReader.awaitStarted();
+ TestNGXmlTestSuite testNGXmlTestSuite = newXmlSuite();
+ testNGXmlTestSuite.locateTestSets( testClassLoader );
+ if ( forkTestSet != null && testRequest == null )
+ {
+ testNGXmlTestSuite.execute( (String) forkTestSet, reporterFactory );
+ }
+ else
+ {
+ testNGXmlTestSuite.execute( reporterFactory );
+ }
}
-
- final ReporterFactory reporterFactory = providerParameters.getReporterFactory();
-
- try
+ else
{
-
- if ( isTestNGXmlTestSuite( testRequest ) )
+ if ( testsToRun == null )
{
- TestNGXmlTestSuite testNGXmlTestSuite = newXmlSuite();
- testNGXmlTestSuite.locateTestSets( testClassLoader );
- if ( forkTestSet != null && testRequest == null )
+ if ( forkTestSet instanceof TestsToRun )
+ {
+ testsToRun = (TestsToRun) forkTestSet;
+ }
+ else if ( forkTestSet instanceof Class )
{
- testNGXmlTestSuite.execute( (String) forkTestSet, reporterFactory );
+ testsToRun = TestsToRun.fromClass( (Class<?>) forkTestSet );
}
else
{
- testNGXmlTestSuite.execute( reporterFactory );
+ testsToRun = scanClassPath();
}
}
- else
+
+ if ( commandsReader != null )
{
- if ( testsToRun == null )
+ commandsReader.addShutdownListener( new CommandListener()
{
- if ( forkTestSet instanceof TestsToRun )
- {
- testsToRun = (TestsToRun) forkTestSet;
- }
- else if ( forkTestSet instanceof Class )
- {
- testsToRun = TestsToRun.fromClass( (Class<?>) forkTestSet );
- }
- else
+ public void update( Command command )
{
- testsToRun = scanClassPath();
+ testsToRun.markTestSetFinished();
}
- }
-
- if ( commandsReader != null )
- {
- commandsReader.addShutdownListener( new CommandListener()
- {
- public void update( Command command )
- {
- testsToRun.markTestSetFinished();
- }
- } );
- }
- TestNGDirectoryTestSuite suite = newDirectorySuite();
- suite.execute( testsToRun, reporterFactory );
+ } );
}
-
- }
- finally
- {
- runResult = reporterFactory.close();
+ TestNGDirectoryTestSuite suite = newDirectorySuite();
+ suite.execute( testsToRun, reporterFactory );
}
}
finally
{
- closeCommandsReader();
+ runResult = reporterFactory.close();
}
return runResult;
}
@@ -181,14 +173,6 @@ public class TestNGProvider
return isFailFast() ? providerParameters.getSkipAfterFailureCount() : 0;
}
- private void closeCommandsReader()
- {
- if ( commandsReader != null )
- {
- commandsReader.stop();
- }
- }
-
private CommandListener registerPleaseStopListener()
{
CommandListener listener = new CommandListener()