fix: add truthful KTAP monitoring diagnostics

This commit is contained in:
2026-07-10 12:17:42 +09:00
parent fc932b27f6
commit 306d3a70a1
15 changed files with 764 additions and 33 deletions

View File

@@ -145,6 +145,12 @@ public sealed class IsolatedTestCommandTests : IDisposable
Assert.Equal([TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1)], delays);
Assert.True(report.Completed);
Assert.True(report.ComActivationAttempted);
Assert.Equal("accepted-unconfirmed", report.LastKtapConnectState);
Assert.True(report.KtapConnectAttempted);
Assert.True(report.KtapConnectAccepted);
Assert.True(report.NetworkMonitoringRecordExpected);
Assert.True(report.NetworkMonitoringCheckRequired);
Assert.Null(report.NetworkMonitoringVerified);
Assert.False(report.OutcomeUnknown);
Assert.Equal(6, report.Steps.Count);
Assert.True(report.Cleanup.AdapterDisposed);
@@ -163,6 +169,9 @@ public sealed class IsolatedTestCommandTests : IDisposable
Assert.Equal(["Connect", "Disconnect", "Dispose"], engine.Calls);
Assert.True(report.Completed);
Assert.True(report.ComActivationAttempted);
Assert.Equal("accepted-unconfirmed", report.LastKtapConnectState);
Assert.True(report.NetworkMonitoringRecordExpected);
Assert.True(report.NetworkMonitoringCheckRequired);
}
[Fact]
@@ -177,6 +186,9 @@ public sealed class IsolatedTestCommandTests : IDisposable
(_, _) => Task.CompletedTask);
Assert.Null(report.ComActivationAttempted);
Assert.Equal("not-attempted", report.LastKtapConnectState);
Assert.False(report.NetworkMonitoringRecordExpected);
Assert.False(report.NetworkMonitoringCheckRequired);
Assert.Equal(["Connect", "Disconnect", "Dispose"], engine.Calls);
}
@@ -192,6 +204,11 @@ public sealed class IsolatedTestCommandTests : IDisposable
(_, _) => Task.CompletedTask);
Assert.Null(report.ComActivationAttempted);
Assert.Equal("attempted", report.LastKtapConnectState);
Assert.True(report.KtapConnectAttempted);
Assert.Null(report.KtapConnectAccepted);
Assert.Null(report.NetworkMonitoringRecordExpected);
Assert.True(report.NetworkMonitoringCheckRequired);
Assert.True(report.OutcomeUnknown);
Assert.Equal(["Connect", "Quarantine", "Dispose"], engine.Calls);
Assert.True(report.Cleanup.QuarantineCompleted);
@@ -492,7 +509,7 @@ public sealed class IsolatedTestCommandTests : IDisposable
public bool ThrowOnQuarantine { get; init; }
public PlayoutStatus Status { get; }
public PlayoutStatus Status { get; private set; }
public event EventHandler<PlayoutStatusChangedEventArgs>? StatusChanged
{
@@ -553,6 +570,21 @@ public sealed class IsolatedTestCommandTests : IDisposable
{
Calls.Add(call);
var code = _codes.GetValueOrDefault(operation, PlayoutResultCode.Success);
if (operation == PlayoutOperation.Connect)
{
Status = Status with
{
LastKtapConnectState = code switch
{
PlayoutResultCode.Success => PlayoutKtapConnectState.AcceptedUnconfirmed,
PlayoutResultCode.Failed => PlayoutKtapConnectState.Failed,
PlayoutResultCode.OutcomeUnknown or PlayoutResultCode.TimedOut =>
PlayoutKtapConnectState.Attempted,
_ => PlayoutKtapConnectState.NotAttempted
}
};
}
return Task.FromResult(new PlayoutResult(
operation,
code,