flacoco
flacoco copied to clipboard
Flacoco crashes when a test method name contains spaces
Some JVM languages (e.g., Kotlin) allow method names to contain spaces. This convention is used in many projects, such as lettuce-core, which is a subject in the APR-Comp. It has a test method that looks like this:
@Test
fun `should scan iteratively`() = runBlocking<Unit> {
...
}
Flacoco will crash on such projects because it won't escape the spaces.
I forgot the exact error because I encountered this bug a few months ago and now I don't have a Kotlin environment at hand, but I still remember what's going on in the code:
- Flacoco calls the
runOnlineCoveredTestResultPerTestMethodsmethod in test-runner with a list of collected test method names (code). runOnlineCoveredTestResultPerTestMethodswill then concatenate all test method names with a space (code),- ... and then transform it into a command-line argument and call
runGivenCommandLine(code). runGivenCommandLinewill then spawn a new Java process with the given argument (code).
Therefore, if a test method name contains a space, it will be parsed as two arguments, crashing the command-line parser.
Maybe you can reproduce this issue and forward it to test-runner if necessary. Thanks again for your great project!
thanks for the bug report @xmcp
@andre15silva WDYT?
Hi @xmcp ,
Thanks a lot for the bug report :)
I will try to reproduce this ASAP and ping you when it is fixed!
Thanks for the response! The lettuce-core bug (id=6) in the APR-Comp Functional-Java benchmark should be able to reproduce this issue, as I have encountered.