szpak / gradle-pitest-plugin

Gradle plugin for PIT Mutation Testing
http://gradle-pitest-plugin.solidsoft.info/
213 stars 58 forks source link

Introduce useSourceDirsFile like useClasspathFile #201

Closed Bleki closed 4 years ago

Bleki commented 4 years ago

Pitest exceeds command line limit on Windows as sourceDirs is now too long as it lists all the files not just the directories. This has been changed from 1.4.7 to 1.4.8 A new config can be introduced like useSourceDirsPath that could work the same way as useClassPath does.

1.4.7 command line: Starting process 'command 'C:\Program Files\ojdkbuild\jdk-13.0.1\bin\java.exe''. Working directory: C:\Git\projects\project Command: C:\Program Files\ojdkbuild\jdk-13.0.1\bin\java.exe -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant -cp C:\Users\user\.gradle\caches\modules-2\files-2.1\org.pitest\pitest-command-line\1.5.0\6e2e52ef7521e834a7830dba83ab8bcb520ac8ca\pitest-command-line-1.5.0.jar;C:\Users\user\.gradle\caches\modules-2\files-2.1\org.pitest\pitest-entry\1.5.0\5c28b3239c5cab3329e1e4f3c73145d202bb5086\pitest-entry-1.5.0.jar;C:\Users\user\.gradle\caches\modules-2\files-2.1\org.pitest\pitest\1.5.0\f8e6d4738f0fca684aaec7c8e0e78e84670fa1bc\pitest-1.5.0.jar org.pitest.mutationtest.commandline.MutationCoverageReport --reportDir=C:\Git\projects\project\build\reports\pitest --targetClasses=com.domain.project.* --targetTests=com.domain.project.* --sourceDirs=C:\Git\projects\project\src\main\resources,C:\Git\projects\project\src\main\java --mutableCodePaths=C:\Git\projects\project\build\classes\java\main --includeLaunchClasspath=false --classPathFile=C:\Git\projects\project\build\pitClasspath

1.4.8 command line: Starting process 'command 'C:\Program Files\ojdkbuild\jdk-13.0.1\bin\java.exe''. Working directory: C:\Git\projects\project Command: C:\Program Files\ojdkbuild\jdk-13.0.1\bin\java.exe -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant -cp C:\Users\user\.gradle\caches\modules-2\files-2.1\org.pitest\pitest-command-line\1.5.1\6f9357d32f5ab433f4f0ec668fcdf04de744d360\pitest-command-line-1.5.1.jar;C:\Users\user\.gradle\caches\modules-2\files-2.1\org.pitest\pitest-entry\1.5.1\fafe3010bf8d03c330ecd800103fc081b507aa4d\pitest-entry-1.5.1.jar;C:\Users\user\.gradle\caches\modules-2\files-2.1\org.pitest\pitest\1.5.1\3914ec0629c931560e0124247c9221aa0cd1c6d\pitest-1.5.1.jar org.pitest.mutationtest.commandline.MutationCoverageReport --reportDir=C:\Git\projects\project\build\reports\pitest --targetClasses=com.domain.project.* --targetTests=com.domain.project.* --sourceDirs=C:\Git\projects\project\src\main\resources\application.properties,C:\Git\projects\project\src\main\resources\banner.txt,C:\Git\projects\project\src\main\resources\log4j2.xml,C:\Git\projects\project\src\main\java\com\domain\project\config\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\config\properties\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\config\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\config\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\metrics\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\metrics\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\metrics\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\model\type\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\monitoring\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\monitoring\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\persistence\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\metrics\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\metrics\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\metrics\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\model\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\calculator\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\processing\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\repository\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\service\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\threading\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\util\somefile.java,C:\Git\projects\project\src\main\java\com\domain\project\util\somefile.java --mutableCodePaths=C:\Git\projects\project\build\classes\java\main --includeLaunchClasspath=false --classPathFile=C:\Git\projects\project\build\pitClasspath

szpak commented 4 years ago

Thanks for your report. The reason is the same as #198. During the migration to the new Gradle API there were some "complications". It is already fixed in devel and once one more thing is done I will release a snapshot to let you give it a try.

Usually there is no reason for useSourceDirsFile. There are dirs not files, e.g. main/java/, main/groovy.

Btw, it's not related to https://github.com/hcoles/pitest/issues/276.

Bleki commented 4 years ago

Thanks for the quick answer, I thought it's a feature and will stay this way in the future, that's why I suggested to introduce a new configuration. I'm curiously waiting for the fix to be released.

szpak commented 4 years ago

@Bleki You may want to play with 1.4.9-SNAPSHOT to check if it fixed the problem for you.

buildscript {
    repositories {
        mavenCentral()
        //Needed only for SNAPSHOT versions
        maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
    }
    dependencies {
        classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.4.9-SNAPSHOT'
    }
}
szpak commented 4 years ago

1.4.9 just has been released. It should fix your problem, but feel free to reopen this issue otherwise.

Bleki commented 4 years ago

It's working again, thanks!