Skip to content

Flacoco crashes when a test method name contains spaces #247

@xmcp

Description

@xmcp

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:

  1. Flacoco calls the runOnlineCoveredTestResultPerTestMethods method in test-runner with a list of collected test method names (code).
  2. runOnlineCoveredTestResultPerTestMethods will then concatenate all test method names with a space (code),
  3. ... and then transform it into a command-line argument and call runGivenCommandLine (code).
  4. runGivenCommandLine will 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions