Disable cleanPath() for testing

This commit is contained in:
Erik C. Thauvin 2025-03-24 17:42:46 -07:00
parent 69a9eac414
commit ea10fd012f
Signed by: erik
GPG key ID: 776702A6A2DA330E

View file

@ -28,7 +28,6 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -52,12 +51,11 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
"kotlinx-coroutines-",
"kotlinx-html-jvm-",
"kotlinx-serialization-",
"poko-annotations-jvm-",
"sarif4k-jvm-",
"snakeyaml-engine-",
"trove4j-");
private static final Logger LOGGER = Logger.getLogger(DetektOperation.class.getName());
private static final String OS_NAME =
System.getProperty("os.name") != null ? System.getProperty("os.name").toLowerCase(Locale.US) : null;
private final Collection<File> classpath_ = new ArrayList<>();
private final Collection<File> config_ = new ArrayList<>();
private final Collection<String> excludes_ = new ArrayList<>();
@ -293,17 +291,6 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
return classPath(paths.stream().map(File::new).toList());
}
private String cleanPath(File path) {
return cleanPath(path.getAbsolutePath());
}
private String cleanPath(String path) {
if (isWindows()) {
return path.replaceAll("\\\\", "\\\\\\\\");
}
return path;
}
/**
* Paths to the config files ({@code path/to/config.yml}).
*
@ -538,13 +525,13 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
// base-path
if (isNotBlank(basePath_)) {
args.add("--base-path");
args.add(cleanPath(basePath_));
args.add(basePath_);
}
// baseline
if (isNotBlank(baseline_)) {
args.add("--baseline");
args.add(cleanPath(baseline_));
args.add(baseline_);
}
// build-upon-default-config
@ -555,19 +542,19 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
// classpath
if (!classpath_.isEmpty()) {
args.add("--classpath");
args.add(String.join(File.pathSeparator, classpath_.stream().map(this::cleanPath).toList()));
args.add(String.join(File.pathSeparator, classpath_.stream().map(File::getAbsolutePath).toList()));
}
// config
if (!config_.isEmpty()) {
args.add("-config");
args.add(String.join(";", config_.stream().map(this::cleanPath).toList()));
args.add(String.join(";", config_.stream().map(File::getAbsolutePath).toList()));
}
// config-resource
if (isNotBlank(configResource_)) {
args.add("--config-resource");
args.add(cleanPath(configResource_));
args.add(configResource_);
}
// create-baseline
@ -588,7 +575,7 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
// excludes
if (!excludes_.isEmpty()) {
args.add("--excludes");
args.add(String.join(",", excludes_.stream().map(this::cleanPath).toList()));
args.add(String.join(",", excludes_));
}
// generate-config
@ -599,19 +586,19 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
// includes
if (!includes_.isEmpty()) {
args.add("--includes");
args.add(String.join(",", includes_.stream().map(this::cleanPath).toList()));
args.add(String.join(",", includes_));
}
// input
if (!input_.isEmpty()) {
args.add("--input");
args.add(String.join(",", input_.stream().map(this::cleanPath).toList()));
args.add(String.join(",", input_.stream().map(File::getAbsolutePath).toList()));
}
// jdk-home
if (isNotBlank(jdkHome_)) {
args.add("--jdk-home");
args.add(cleanPath(jdkHome_));
args.add(jdkHome_);
}
// jvm-target
@ -640,14 +627,14 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
// plugins
if (!plugins_.isEmpty()) {
args.add("--plugins");
args.add(String.join(",", plugins_.stream().map(this::cleanPath).toList()));
args.add(String.join(",", plugins_.stream().map(File::getAbsolutePath).toList()));
}
// report
if (!report_.isEmpty()) {
report_.forEach(it -> {
args.add("--report");
args.add(it.id().name().toLowerCase() + ":" + cleanPath(it.path()));
args.add(it.id().name().toLowerCase() + ":" + it.path());
});
}
@ -706,7 +693,7 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
if (!f.getName().endsWith("-sources.jar") && !f.getName().endsWith("-javadoc.jar")) {
for (var m : DETEKT_JARS) {
if (f.getName().startsWith(m)) {
jars.add(cleanPath(f));
jars.add(f.getAbsolutePath());
break;
}
}
@ -714,7 +701,7 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
}
}
}
return String.join(":", jars);
return String.join(File.pathSeparator, jars);
}
/**
@ -832,15 +819,6 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
return s != null && !s.isBlank();
}
/**
* Determines if the current operating system is Windows.
*
* @return true if the operating system is Windows, false otherwise.
*/
private boolean isWindows() {
return OS_NAME != null && OS_NAME.contains("win");
}
/**
* EXPERIMENTAL: Use a custom JDK home directory to include into the
* classpath.