Skip to content

Commit 097b605

Browse files
committed
Move load failure messages from DiaSession and friends to internal diagnostics messages
1 parent 3761c16 commit 097b605

File tree

3 files changed

+30
-30
lines changed

3 files changed

+30
-30
lines changed

src/xunit.runner.visualstudio/Utility/DiaSessionWrapper.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,21 @@ class DiaSessionWrapper : IDisposable
1616
#endif
1717
readonly DiaSessionWrapperHelper? helper;
1818
readonly DiaSession? session;
19-
readonly DiagnosticMessageSink diagnosticMessageSink;
19+
readonly DiagnosticMessageSink internalDiagnosticMessageSink;
2020

2121
public DiaSessionWrapper(
2222
string assemblyFileName,
23-
DiagnosticMessageSink diagnosticMessageSink)
23+
DiagnosticMessageSink internalDiagnosticMessageSink)
2424
{
25-
this.diagnosticMessageSink = Guard.ArgumentNotNull(diagnosticMessageSink);
25+
this.internalDiagnosticMessageSink = Guard.ArgumentNotNull(internalDiagnosticMessageSink);
2626

2727
try
2828
{
2929
session = new DiaSession(assemblyFileName);
3030
}
3131
catch (Exception ex)
3232
{
33-
diagnosticMessageSink.OnMessage(new DiagnosticMessage($"Exception creating DiaSession: {ex}"));
33+
internalDiagnosticMessageSink.OnMessage(new DiagnosticMessage($"Exception creating DiaSession: {ex}"));
3434
}
3535

3636
try
@@ -48,7 +48,7 @@ public DiaSessionWrapper(
4848
}
4949
catch (Exception ex)
5050
{
51-
diagnosticMessageSink.OnMessage(new DiagnosticMessage($"Exception creating DiaSessionWrapperHelper: {ex}"));
51+
internalDiagnosticMessageSink.OnMessage(new DiagnosticMessage($"Exception creating DiaSessionWrapperHelper: {ex}"));
5252
}
5353
}
5454

@@ -66,7 +66,7 @@ public DiaSessionWrapper(
6666
}
6767
catch (Exception ex)
6868
{
69-
diagnosticMessageSink.OnMessage(new DiagnosticMessage($"Exception getting source mapping for {typeName}.{methodName}: {ex}"));
69+
internalDiagnosticMessageSink.OnMessage(new DiagnosticMessage($"Exception getting source mapping for {typeName}.{methodName}: {ex}"));
7070
return null;
7171
}
7272
}

src/xunit.runner.visualstudio/Utility/VisualStudioSourceInformationProvider.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public class VisualStudioSourceInformationProvider : LongLivedMarshalByRefObject
1818
/// Initializes a new instance of the <see cref="VisualStudioSourceInformationProvider" /> class.
1919
/// </summary>
2020
/// <param name="assemblyFileName">The assembly file name.</param>
21-
/// <param name="diagnosticMessageSink">The message sink to send internal diagnostic messages to.</param>
21+
/// <param name="internalDiagnosticMessageSink">The message sink to send internal diagnostic messages to.</param>
2222
public VisualStudioSourceInformationProvider(
2323
string assemblyFileName,
24-
DiagnosticMessageSink diagnosticMessageSink)
24+
DiagnosticMessageSink internalDiagnosticMessageSink)
2525
{
26-
session = new DiaSessionWrapper(assemblyFileName, diagnosticMessageSink);
26+
session = new DiaSessionWrapper(assemblyFileName, internalDiagnosticMessageSink);
2727
}
2828

2929
/// <inheritdoc/>

src/xunit.runner.visualstudio/VsTestRunner.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -227,21 +227,21 @@ void DiscoverTests<TVisitor>(
227227
{
228228
RemotingUtility.CleanUpRegisteredChannels();
229229

230-
var internalDiagnosticsMessageSink = DiagnosticMessageSink.ForInternalDiagnostics(logger, runSettings.InternalDiagnosticMessages ?? false);
230+
var internalDiagnosticsSinkLocal = DiagnosticMessageSink.ForInternalDiagnostics(logger, runSettings.InternalDiagnosticMessages ?? false);
231+
using var _ = AssemblyHelper.SubscribeResolveForAssembly(typeof(VsTestRunner), MessageSinkAdapter.Wrap(internalDiagnosticsSinkLocal));
231232

232-
using var _ = AssemblyHelper.SubscribeResolveForAssembly(typeof(VsTestRunner), MessageSinkAdapter.Wrap(internalDiagnosticsMessageSink));
233233
foreach (var assemblyFileNameCanBeWithoutAbsolutePath in sources)
234234
{
235235
var assembly = new XunitProjectAssembly { AssemblyFilename = GetAssemblyFileName(assemblyFileNameCanBeWithoutAbsolutePath) };
236236
runSettings.CopyTo(assembly.Configuration);
237237

238238
var fileName = Path.GetFileNameWithoutExtension(assembly.AssemblyFilename);
239239
var shadowCopy = assembly.Configuration.ShadowCopyOrDefault;
240-
var diagnosticSink = DiagnosticMessageSink.ForDiagnostics(logger, fileName, assembly.Configuration.DiagnosticMessagesOrDefault);
240+
var diagnosticsSinkLocal = DiagnosticMessageSink.ForDiagnostics(logger, fileName, assembly.Configuration.DiagnosticMessagesOrDefault);
241241
var appDomain = assembly.Configuration.AppDomain ?? AppDomainDefaultBehavior;
242242

243-
using var sourceInformationProvider = new VisualStudioSourceInformationProvider(assembly.AssemblyFilename, diagnosticSink);
244-
using var controller = new XunitFrontController(appDomain, assembly.AssemblyFilename, shadowCopy: shadowCopy, sourceInformationProvider: sourceInformationProvider, diagnosticMessageSink: MessageSinkAdapter.Wrap(diagnosticSink));
243+
using var sourceInformationProvider = new VisualStudioSourceInformationProvider(assembly.AssemblyFilename, internalDiagnosticsSinkLocal);
244+
using var controller = new XunitFrontController(appDomain, assembly.AssemblyFilename, shadowCopy: shadowCopy, sourceInformationProvider: sourceInformationProvider, diagnosticMessageSink: MessageSinkAdapter.Wrap(diagnosticsSinkLocal));
245245
if (!DiscoverTestsInSource(controller, logger, testPlatformContext, runSettings, visitorFactory, visitComplete, assembly))
246246
break;
247247
}
@@ -384,18 +384,16 @@ void RunTests(
384384
var parallelizeAssemblies = runInfos.All(runInfo => runInfo.Assembly.Configuration.ParallelizeAssemblyOrDefault);
385385
var reporter = GetRunnerReporter(logger, runSettings, runInfos.Select(ari => ari.Assembly.AssemblyFilename).ToList());
386386
using var reporterMessageHandler = MessageSinkWithTypesAdapter.Wrap(reporter.CreateMessageHandler(new VisualStudioRunnerLogger(logger)));
387-
using var internalDiagnosticsMessageSink = DiagnosticMessageSink.ForInternalDiagnostics(logger, runSettings.InternalDiagnosticMessages ?? false);
387+
using var internalDiagnosticsSinkLocal = DiagnosticMessageSink.ForInternalDiagnostics(logger, runSettings.InternalDiagnosticMessages ?? false);
388+
using var _ = AssemblyHelper.SubscribeResolveForAssembly(typeof(VsTestRunner), MessageSinkAdapter.Wrap(internalDiagnosticsSinkLocal));
388389

389-
using (AssemblyHelper.SubscribeResolveForAssembly(typeof(VsTestRunner), MessageSinkAdapter.Wrap(internalDiagnosticsMessageSink)))
390-
{
391-
if (parallelizeAssemblies)
392-
runInfos
393-
.Select(runInfo => RunTestsInAssemblyAsync(runContext, frameworkHandle, logger, testPlatformContext, runSettings, reporterMessageHandler, runInfo))
394-
.ToList()
395-
.ForEach(@event => @event.WaitOne());
396-
else
397-
runInfos.ForEach(runInfo => RunTestsInAssembly(runContext, frameworkHandle, logger, testPlatformContext, runSettings, reporterMessageHandler, runInfo));
398-
}
390+
if (parallelizeAssemblies)
391+
runInfos
392+
.Select(runInfo => RunTestsInAssemblyAsync(runContext, frameworkHandle, logger, testPlatformContext, runSettings, reporterMessageHandler, runInfo))
393+
.ToList()
394+
.ForEach(@event => @event.WaitOne());
395+
else
396+
runInfos.ForEach(runInfo => RunTestsInAssembly(runContext, frameworkHandle, logger, testPlatformContext, runSettings, reporterMessageHandler, runInfo));
399397
}
400398
catch (Exception ex)
401399
{
@@ -426,10 +424,12 @@ void RunTestsInAssembly(
426424
var appDomain = configuration.AppDomain ?? AppDomainDefaultBehavior;
427425
var longRunningSeconds = configuration.LongRunningTestSecondsOrDefault;
428426

429-
var diagnosticSink = DiagnosticMessageSink.ForDiagnostics(logger, assemblyDisplayName, runInfo.Assembly.Configuration.DiagnosticMessagesOrDefault);
430-
var diagnosticMessageSink = MessageSinkAdapter.Wrap(diagnosticSink);
431-
using var sourceInformationProvider = new VisualStudioSourceInformationProvider(assemblyFileName, diagnosticSink);
432-
using var controller = new XunitFrontController(appDomain, assemblyFileName, shadowCopy: shadowCopy, sourceInformationProvider: sourceInformationProvider, diagnosticMessageSink: diagnosticMessageSink);
427+
var diagnosticsSinkLocal = DiagnosticMessageSink.ForDiagnostics(logger, assemblyDisplayName, runInfo.Assembly.Configuration.DiagnosticMessagesOrDefault);
428+
var diagnosticsSinkRemote = MessageSinkAdapter.Wrap(diagnosticsSinkLocal);
429+
var internalDiagnosticsSinkLocal = DiagnosticMessageSink.ForInternalDiagnostics(logger, runInfo.Assembly.Configuration.InternalDiagnosticMessagesOrDefault);
430+
431+
using var sourceInformationProvider = new VisualStudioSourceInformationProvider(assemblyFileName, internalDiagnosticsSinkLocal);
432+
using var controller = new XunitFrontController(appDomain, assemblyFileName, shadowCopy: shadowCopy, sourceInformationProvider: sourceInformationProvider, diagnosticMessageSink: diagnosticsSinkRemote);
433433
var testCasesMap = new Dictionary<string, TestCase>();
434434
var testCases = new List<ITestCase>();
435435
if (runInfo.TestCases is null || !runInfo.TestCases.Any())
@@ -543,7 +543,7 @@ void RunTestsInAssembly(
543543
using var vsExecutionSink = new VsExecutionSink(reporterMessageHandler, frameworkHandle, logger, testCasesMap, () => cancelled);
544544
IExecutionSink resultsSink = vsExecutionSink;
545545
if (longRunningSeconds > 0)
546-
resultsSink = new DelegatingLongRunningTestDetectionSink(resultsSink, TimeSpan.FromSeconds(longRunningSeconds), diagnosticSink);
546+
resultsSink = new DelegatingLongRunningTestDetectionSink(resultsSink, TimeSpan.FromSeconds(longRunningSeconds), diagnosticsSinkLocal);
547547
if (configuration.FailSkipsOrDefault)
548548
resultsSink = new DelegatingFailSkipSink(resultsSink);
549549

0 commit comments

Comments
 (0)