diff --git a/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs b/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs index 04e9f12..fb0e6f2 100644 --- a/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs +++ b/tests/ClawdDotNet.Manager.Tests/InstanceSupervisorTests.cs @@ -307,22 +307,24 @@ public sealed class InstanceSupervisorTests : IDisposable { _kanal.Answer = Test; - // #722: Viel Luft bis MaxDrainWait — unter Parallellast kam die Verzoegerung von 700 ms - // sonst erst nach den 2 s an, und der Test sah einen Abschuss, wo keiner hingehoert. - await using var aufsicht = Aufsicht(Options with { MaxDrainWait = TimeSpan.FromSeconds(20) }); + // #722: Die Aufsicht fragt alle 250 ms und schiebt die Frist nur bei "raeume auf" weiter. + // Mit 300 ms Frist kam unter Parallellast die naechste Frage zu spaet, und der Test sah + // einen Abschuss, wo keiner hingehoert. Eine Sekunde Frist laesst dem Takt Luft; die + // Instanz raeumt trotzdem deutlich laenger auf, als die Frist allein erlaubt. + await using var aufsicht = Aufsicht(Options with { StopGrace = TimeSpan.FromSeconds(1), MaxDrainWait = TimeSpan.FromSeconds(20) }); await aufsicht.StartAsync(); var prozess = _launcher.Last.ShouldNotBeNull(); - // Sie antwortet und meldet: Ich raeume auf. Laenger als StopGrace (300ms), aber + // Sie antwortet und meldet: Ich raeume auf. Laenger als StopGrace (1 s), aber // kuerzer als MaxDrainWait. _kanal.Answer = Test with { Phase = ShutdownPhase.Draining, OpenWork = 1 }; _kanal.OnStopRequest = _ => Task.Run(async () => { - await Task.Delay(700); - _kanal.Answer = null; + await Task.Delay(2500); prozess.Exit(0); + _kanal.Answer = null; }); (await aufsicht.StopAsync()).ShouldBeTrue();