47 lines
1.8 KiB
C#
47 lines
1.8 KiB
C#
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
#if NETFRAMEWORK
|
|
using IntegrationTests.Helpers;
|
|
using Xunit.Abstractions;
|
|
|
|
namespace IntegrationTests;
|
|
|
|
public class DomainNeutralTests : TestHelper
|
|
{
|
|
public DomainNeutralTests(ITestOutputHelper output)
|
|
: base("DomainNeutral.NetFramework", output)
|
|
{
|
|
}
|
|
|
|
[Fact]
|
|
[Trait("Category", "EndToEnd")]
|
|
public void SubmitsTraces()
|
|
{
|
|
Assert.True(EnvironmentTools.IsWindowsAdministrator(), "This test requires Windows Administrator privileges.");
|
|
|
|
using var collector = new MockSpansCollector(Output);
|
|
SetExporter(collector);
|
|
collector.Expect("ByteCode.Plugin.StrongNamedValidation");
|
|
|
|
// Add the necessary assembly to the GAC so it can be loaded as domain-neutral.
|
|
var instrumentationAssembly = Path.Combine(
|
|
EnvironmentTools.GetSolutionDirectory(),
|
|
"bin",
|
|
"tracer-home",
|
|
"netfx",
|
|
"OpenTelemetry.AutoInstrumentation.dll");
|
|
Assert.True(File.Exists(instrumentationAssembly), $"instrumentation assembly is not available {instrumentationAssembly}");
|
|
using var gacEntry = new GacEntry(instrumentationAssembly);
|
|
|
|
// Domain-neutral depends on strong named assemblies to work, leverage some assets from
|
|
// strong name testing in the current test.
|
|
SetEnvironmentVariable("OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES", "ByteCode.Plugin.StrongNamedValidation");
|
|
SetEnvironmentVariable("OTEL_DOTNET_AUTO_PLUGINS", "TestLibrary.InstrumentationTarget.Plugin, TestLibrary.InstrumentationTarget, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c0db600a13f60b51");
|
|
RunTestApplication();
|
|
|
|
collector.AssertExpectations();
|
|
}
|
|
}
|
|
#endif
|