Better fix for dump failure test

This commit is contained in:
Jordan Brown
2020-08-20 14:45:53 -04:00
parent 5511403a7d
commit 131b79bca5
@@ -84,19 +84,27 @@ namespace Tgstation.Server.Tests.Instance
File.Delete(dumpFiles.Single());
KillDD(true);
Task<Job> dumpTask = null;
TaskCompletionSource<object> jobTcs = new TaskCompletionSource<object>();
TaskCompletionSource<object> killTaskStarted = new TaskCompletionSource<object>();
var killTask = Task.Run(() =>
{
killTaskStarted.SetResult(null);
while (dumpTask?.IsCompleted != true)
while (jobTcs.Task?.IsCompleted != true)
KillDD(false);
});
await killTaskStarted.Task;
dumpTask = instanceClient.DreamDaemon.CreateDump(cancellationToken);
await killTask;
var job = await WaitForJob(await dumpTask, 20, true, null, cancellationToken);
Job job;
try
{
await killTaskStarted.Task;
var dumpTask = instanceClient.DreamDaemon.CreateDump(cancellationToken);
await killTask;
job = await WaitForJob(await dumpTask, 20, true, null, cancellationToken);
}
finally
{
jobTcs.SetResult(null);
}
Assert.IsTrue(job.ErrorCode == ErrorCode.DreamDaemonOffline || job.ErrorCode == ErrorCode.GCoreFailure, $"{job.ErrorCode}: {job.ExceptionDetails}");
await Task.Delay(TimeSpan.FromSeconds(20), cancellationToken);