84 lines
2.5 KiB
C#
84 lines
2.5 KiB
C#
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
using System.Runtime.InteropServices;
|
|
using IntegrationTests.Helpers;
|
|
|
|
namespace IntegrationTests;
|
|
|
|
[UsesVerify]
|
|
public class BuildTests
|
|
{
|
|
[Fact]
|
|
public Task DistributionStructure()
|
|
{
|
|
var distributionFolder = EnvironmentHelper.GetNukeBuildOutput();
|
|
var files = Directory.GetFiles(distributionFolder, "*", SearchOption.AllDirectories);
|
|
|
|
var relativesPaths = new List<string>(files.Length);
|
|
foreach (var file in files)
|
|
{
|
|
relativesPaths.Add(file.Substring(distributionFolder.Length));
|
|
}
|
|
|
|
relativesPaths.Sort(StringComparer.Ordinal);
|
|
|
|
var systemName = GetSystemName();
|
|
|
|
return Verifier.Verify(relativesPaths)
|
|
.UseTextForParameters(systemName)
|
|
.DisableDiff();
|
|
}
|
|
|
|
#if NET
|
|
[Fact]
|
|
public void NetFolderDoesNotContainAnyLibraryFromAdditionalStore()
|
|
{
|
|
var distributionFolder = EnvironmentHelper.GetNukeBuildOutput();
|
|
|
|
var netFilePaths = Directory.GetFiles(Path.Join(distributionFolder, "net"), "*", SearchOption.AllDirectories);
|
|
var additionalStoreFilePaths = Directory.GetFiles(Path.Join(distributionFolder, "store"), "*", SearchOption.AllDirectories);
|
|
|
|
var netFileNames = netFilePaths.Select(Path.GetFileNameWithoutExtension).ToArray();
|
|
var additionalStoreFileNames = additionalStoreFilePaths.Select(Path.GetFileNameWithoutExtension).Distinct().ToArray();
|
|
|
|
Assert.All(additionalStoreFileNames, additionalNetFileName => Assert.DoesNotContain(additionalNetFileName, netFileNames));
|
|
}
|
|
#endif
|
|
|
|
private static string GetSystemName()
|
|
{
|
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
|
{
|
|
return "osx";
|
|
}
|
|
|
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
|
{
|
|
if (Environment.GetEnvironmentVariable("IsAlpine") == "true")
|
|
{
|
|
return $"alpine-linux-{GetPlatform()}";
|
|
}
|
|
|
|
return $"linux-{GetPlatform()}";
|
|
}
|
|
|
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
{
|
|
return "windows";
|
|
}
|
|
|
|
return "unknown";
|
|
}
|
|
|
|
private static string GetPlatform()
|
|
{
|
|
return RuntimeInformation.ProcessArchitecture switch
|
|
{
|
|
Architecture.X64 => "x64",
|
|
Architecture.Arm64 => "arm64",
|
|
_ => throw new PlatformNotSupportedException()
|
|
};
|
|
}
|
|
}
|