GitHub user michaeltandy opened a pull request:
https://github.com/apache/maven-surefire/pull/130
[SUREFIRE-1295] Attribute JVM crashes to tests
As explained in
[SUREFIRE-1295](https://issues.apache.org/jira/browse/SUREFIRE-1295) it's a
source of some inconvenience to me that, if a test crashes the forked JVM,
there isn't clear logging of which test, if any, was running at the time of the
crash.
This change makes JVM crash handling more like the handling of other
errors, adding the JVM-crashing test to the count of Errors and the list of
Tests in error.
Here's the log output before the patch, from version 2.19.1
```
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @
crash-during-test ---
---
T E S T S
---
Running junit44.environment.BasicTest
Running junit44.environment.SomeOtherTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 sec -
in junit44.environment.SomeOtherTest
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] BUILD FAILURE
[INFO]
[INFO] Total time: 2.149 s
[INFO] Finished at: 2016-10-26T23:12:07+01:00
[INFO] Final Memory: 19M/454M
[INFO]
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on
project crash-during-test: ExecutionException The forked VM terminated without
properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test
&& /usr/lib/jvm/java-8-oracle/jre/bin/java -jar
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test/target/surefire/surefirebooter1367113935938691280.jar
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test/target/surefire/surefire6487093419506274719tmp
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test/target/surefire/surefire_04459111308039624275tmp
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
```
Here is the log output for the same tests, after applying this patch:
```
[INFO] --- maven-surefire-plugin:2.19.2-SNAPSHOT:test (default-test) @
crash-during-test ---
[INFO]
[INFO] ---
[INFO] T E S T S
[INFO] ---
[INFO] Running junit44.environment.BasicTest
[WARNING] Missing goodbye handling engaged.
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:
0.035 s <<< FAILURE! - in testCrashJvm(junit44.environment.BasicTest)
[ERROR] testCrashJvm(junit44.environment.BasicTest) Time elapsed: 0.018 s
<<< ERROR!
null
[ERROR] The forked VM terminated without properly saying goodbye. VM crash
or System.exit called?
Command was /bin/sh -c cd
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test
&& /usr/lib/jvm/java-8-oracle/jre/bin/java -jar
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test/target/surefire/surefirebooter4848491891931563261.jar
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test/target/surefire/surefire1002822166442627824tmp
/home/mtandy/Documents/surefire-vmcrash/maven-surefire/surefire-integration-tests/src/test/resources/crash-during-test/target/surefire/surefire_07708768178699511150tmp
Exit code was 66
Tests were running at the time.
[INFO] Running junit44.environment.SomeOtherTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
0.023 s - in junit44.environment.SomeOtherTest
[INFO]
[INFO] Results:
[INFO]
[ERROR] Tests in error:
[ERROR]
junit44.environment.BasicTest.testCrashJvm(junit44.environment.BasicTest)
[INFO]
[ERROR] Tests run: 2, Failures: 0, Errors