Skip to content

Reduce size of test-runner args #57

@andre15silva

Description

@andre15silva

If we specify all test methods that are to be ran in a big enough project, we will easily reach the space available for command arguments set by Linux.

This limit can be adjusted, but even with 65MB available there is still an issue for thousands of methods.

Trace:

java.lang.RuntimeException: java.io.IOException: Cannot run program "java" (in directory "/home/andre/Repos/flacoco/."): error=7, Argument list too long
	at eu.stamp_project.testrunner.EntryPoint.runGivenCommandLine(EntryPoint.java:602)
	at eu.stamp_project.testrunner.EntryPoint.runCoveredTestResultPerTestMethods(EntryPoint.java:496)
	at fr.spoonlabs.flacoco.core.coverage.framework.JUnit4Strategy.execute(JUnit4Strategy.java:23)
	at fr.spoonlabs.flacoco.core.coverage.CoverageRunner.getCoverageMatrix(CoverageRunner.java:34)
	at fr.spoonlabs.flacoco.localization.spectrum.SpectrumRunner.computeCoverageMatrix(SpectrumRunner.java:37)
	at fr.spoonlabs.flacoco.localization.spectrum.SpectrumRunner.run(SpectrumRunner.java:22)
	at fr.spoonlabs.flacoco.api.Flacoco.runDefault(Flacoco.java:32)
	at fr.spoonlabs.flacoco.cli.FlacocoMain.call(FlacocoMain.java:105)
	at fr.spoonlabs.flacoco.cli.FlacocoMain.call(FlacocoMain.java:25)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at fr.spoonlabs.flacoco.cli.FlacocoMain.main(FlacocoMain.java:96)
Caused by: java.io.IOException: Cannot run program "java" (in directory "/home/andre/Repos/flacoco/."): error=7, Argument list too long
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at eu.stamp_project.testrunner.EntryPoint.runGivenCommandLine(EntryPoint.java:591)
	... 16 more
Caused by: java.io.IOException: error=7, Argument list too long
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	... 17 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions