[unit perf tests] sanitize full test name to publish artifacts correctly (IDEA-346347)

GitOrigin-RevId: 3af827d96818ef8b58cb51cb14155340e41f6897
This commit is contained in:
Sergey Simonchik
2024-03-17 16:05:08 +01:00
committed by intellij-monorepo-bot
parent 60fdc95ca1
commit e7d590a7e0
@@ -4,11 +4,12 @@ package com.intellij.testFramework;
import com.intellij.concurrency.IdeaForkJoinWorkerThreadFactory;
import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.util.ThrowableComputable;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.platform.diagnostic.telemetry.IJTracer;
import com.intellij.platform.diagnostic.telemetry.Scope;
import com.intellij.platform.diagnostic.telemetry.TelemetryManager;
import com.intellij.platform.testFramework.diagnostic.TelemetryMeterCollector;
import com.intellij.platform.testFramework.diagnostic.MetricsPublisher;
import com.intellij.platform.testFramework.diagnostic.TelemetryMeterCollector;
import com.intellij.util.ExceptionUtil;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.containers.ContainerUtil;
@@ -25,6 +26,7 @@ import org.jetbrains.annotations.Nullable;
import java.io.IOException;
import java.lang.reflect.Method;
import java.nio.file.Files;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Locale;
@@ -311,8 +313,9 @@ public class PerformanceTestInfo {
* @see PerformanceTestInfo#start()
*/
public void start(String fullQualifiedTestMethodName) {
start(IterationMode.WARMUP, fullQualifiedTestMethodName);
start(IterationMode.MEASURE, fullQualifiedTestMethodName);
String sanitizedFullQualifiedTestMethodName = sanitizeFullTestNameForArtifactPublishing(fullQualifiedTestMethodName);
start(IterationMode.WARMUP, sanitizedFullQualifiedTestMethodName);
start(IterationMode.MEASURE, sanitizedFullQualifiedTestMethodName);
}
/**
@@ -412,6 +415,17 @@ public class PerformanceTestInfo {
};
}
private static @NotNull String sanitizeFullTestNameForArtifactPublishing(@NotNull String fullTestName) {
try {
//noinspection ResultOfMethodCallIgnored
Path.of("./" + fullTestName); // prefix with "./" to make sure "C:/Users" is sanitized
return fullTestName;
}
catch (InvalidPathException e) {
return FileUtil.sanitizeFileName(fullTestName, false);
}
}
private static final class Profiler {
private static final ProfilerForTests profiler = getProfilerInstance();