diff --git a/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs b/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs index 9955bc1af4..4823cebd9d 100644 --- a/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs +++ b/tests/Tgstation.Server.Tests/Instance/WatchdogTest.cs @@ -43,6 +43,9 @@ namespace Tgstation.Server.Tests.Instance SoftRestart = true }, cancellationToken), ErrorCode.DreamDaemonDoubleSoft); + await ApiAssert.ThrowsException(() => instanceClient.DreamDaemon.CreateDump(cancellationToken), ErrorCode.WatchdogNotRunning); + await ApiAssert.ThrowsException(() => instanceClient.DreamDaemon.Restart(cancellationToken), ErrorCode.WatchdogNotRunning); + await RunBasicTest(cancellationToken); // await RunLongRunningTestThenUpdate(cancellationToken); @@ -53,6 +56,15 @@ namespace Tgstation.Server.Tests.Instance await RunHeartbeatTest(cancellationToken); await StartAndLeaveRunning(cancellationToken); + + var dumpJob = await instanceClient.DreamDaemon.CreateDump(cancellationToken); + await WaitForJob(dumpJob, 3000, false, cancellationToken); + + var dumpFiles = Directory.GetFiles(Path.Combine( + instanceClient.Metadata.Path, "Diagnostics", "ProcessDumps"), "*.dmp"); + Assert.AreEqual(1, dumpFiles.Length); + File.Delete(dumpFiles.Single()); + global::System.Console.WriteLine("TEST: END WATCHDOG TESTS"); } @@ -103,12 +115,14 @@ namespace Tgstation.Server.Tests.Instance Assert.Inconclusive($"Incorrect number of DD processes: {ddProcs.Count}"); using var ddProc = ddProcs.Single(); - using var ourProcessHandler = new ProcessExecutor( + IProcessExecutor executor = null; + executor = new ProcessExecutor( new PlatformIdentifier().IsWindows ? (IProcessFeatures)new WindowsProcessFeatures(Mock.Of>()) - : new PosixProcessFeatures(Mock.Of(), Mock.Of>()), + : new PosixProcessFeatures(new Lazy(() => executor), Mock.Of(), Mock.Of>()), Mock.Of>(), - LoggerFactory.Create(x => { })) + LoggerFactory.Create(x => { })); + using var ourProcessHandler = executor .GetProcess(ddProc.Id); // Ensure it's responding to heartbeats