private static string GetFilePath(string fileName, DiagnoserActionParameters details, DateTime creationTime, string fileExtension) { // if we run for more than one toolchain, the output file name should contain the name too so we can differ net462 vs netcoreapp2.1 etc if (details.Config.GetJobs().Select(job => ToolchainExtensions.GetToolchain(job)).Distinct().Count() > 1) { fileName += $"-{details.BenchmarkCase.Job.Environment.Runtime?.Name ?? details.BenchmarkCase.GetToolchain()?.Name ?? details.BenchmarkCase.Job.Id}"; } fileName += $"-{creationTime.ToString(BenchmarkRunnerClean.DateTimeFormat)}"; fileName = FolderNameHelper.ToFolderName(fileName); return(Path.Combine(details.Config.ArtifactsPath, $"{fileName}.{fileExtension}")); }
private static string GetLimitedFilePath(DiagnoserActionParameters details, DateTime creationTime, string fileExtension, int limit) { string shortTypeName = FolderNameHelper.ToFolderName(details.BenchmarkCase.Descriptor.Type, includeNamespace: false); string methodName = details.BenchmarkCase.Descriptor.WorkloadMethod.Name; string parameters = details.BenchmarkCase.HasParameters ? $"-hash{Hashing.HashString(FullNameProvider.GetMethodName(details.BenchmarkCase))}" : string.Empty; string fileName = $@"{shortTypeName}.{methodName}{parameters}"; string finalResult = GetFilePath(fileName, details, creationTime, fileExtension); if (finalResult.Length > limit) { throw new NotSupportedException($"The full benchmark name: \"{fileName}\" combined with artifacts path: \"{details.Config.ArtifactsPath}\" is too long. " + $"Please set the value of {nameof(details.Config)}.{nameof(details.Config.ArtifactsPath)} to shorter path or rename the type or method."); } return(finalResult); }
private static string GetFilePathNoLimits(DiagnoserActionParameters details, DateTime creationTime, string fileExtension) { string fileName = $@"{FolderNameHelper.ToFolderName(details.BenchmarkCase.Descriptor.Type)}.{FullNameProvider.GetMethodName(details.BenchmarkCase)}"; return(GetFilePath(fileName, details, creationTime, fileExtension)); }