- Implemented `chrome-path.js` to define functions for locating Chromium binaries across different platforms and nested directories. - Added `verify-chromium.js` to check for the presence of the Chromium binary and log the results, including candidate paths checked. - The scripts support Linux, Windows, and macOS environments, enhancing the flexibility of Chromium binary detection.
55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
namespace StellaOps.Scanner.Analyzers.Lang.Tests.TestUtilities;
|
|
|
|
public static class TestPaths
|
|
{
|
|
public static string ResolveFixture(params string[] segments)
|
|
{
|
|
var baseDirectory = AppContext.BaseDirectory;
|
|
var parts = new List<string> { baseDirectory };
|
|
parts.AddRange(new[] { "Fixtures" });
|
|
parts.AddRange(segments);
|
|
return Path.GetFullPath(Path.Combine(parts.ToArray()));
|
|
}
|
|
|
|
public static string CreateTemporaryDirectory()
|
|
{
|
|
var root = Path.Combine(AppContext.BaseDirectory, "tmp", Guid.NewGuid().ToString("N"));
|
|
Directory.CreateDirectory(root);
|
|
return root;
|
|
}
|
|
|
|
public static void SafeDelete(string directory)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(directory) || !Directory.Exists(directory))
|
|
{
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
Directory.Delete(directory, recursive: true);
|
|
}
|
|
catch
|
|
{
|
|
// Swallow cleanup exceptions to avoid masking test failures.
|
|
}
|
|
}
|
|
|
|
public static string ResolveProjectRoot()
|
|
{
|
|
var directory = AppContext.BaseDirectory;
|
|
while (!string.IsNullOrEmpty(directory))
|
|
{
|
|
var matches = Directory.EnumerateFiles(directory, "StellaOps.Scanner.Analyzers.Lang*.Tests.csproj", SearchOption.TopDirectoryOnly);
|
|
if (matches.Any())
|
|
{
|
|
return directory;
|
|
}
|
|
|
|
directory = Path.GetDirectoryName(directory) ?? string.Empty;
|
|
}
|
|
|
|
throw new InvalidOperationException("Unable to locate project root.");
|
|
}
|
|
}
|