tackle-test-generator-cli icon indicating copy to clipboard operation
tackle-test-generator-cli copied to clipboard

"The command line is too long." when generating tests with randoop or evosuite as subcommand

Open thatdc opened this issue 2 years ago • 3 comments

Hi all! I am encountering a bug and I might have also diagnosed the cause.

Whenever I try to generate tests with tkltest-unit -cf tkltest_config.toml -vb generate evosuite or tkltest-unit -cf tkltest_config.toml -vb generate randoop, the generation fails with "The command line is too long." error.

As far as I understood, the issue is very clear: in tackle-test-generator-cli\tkltest\unit\generate\generate_standalone.py, the script calls a Java command to invoke Randoop or Evosuite. In case the complete classpath is too long (>8192 chars), windows refuses to execute the command.

This is a hard limit of Windows, hence the solution would be to implement in generate_standalone.py whatever you implemented in the core jar, when ctd-amplified generates the basic tests with randoop/evosuite.

thatdc avatar Feb 15 '23 15:02 thatdc

Thank you @thatdc. As a workaround please refer to the 3rd issue listed in our readme here.

rachelt44 avatar Feb 15 '23 18:02 rachelt44

Hi, @rachelt44, as far as I understand, that is referring to the 260 limit for paths. What I am encountering here, is the maximum length allowed for a command in Powershell/CMD, which is 8191. This happens when the classpath is very long due to a high number of dependencies. These are 2 separate problems, aren't they?

thatdc avatar Feb 15 '23 18:02 thatdc

@thatdc you're correct, that's another problem than the one I referred to.

rachelt44 avatar Feb 15 '23 18:02 rachelt44