a test timeout ...

This commit is contained in:
Paul Schneider 2018-07-20 02:48:21 +02:00
commit 262edc499b
2 changed files with 48 additions and 11 deletions

33
test/src/TestHelpers.cs Normal file
View file

@ -0,0 +1,33 @@
using System;
using System.Threading.Tasks;
namespace test {
public static class AssertAsync {
public static void CompletesIn(int timeout, Action action)
{
var task = Task.Run(action);
var completedInTime = Task.WaitAll(new[] { task }, TimeSpan.FromSeconds(timeout));
if (task.Exception != null)
{
if (task.Exception.InnerExceptions.Count == 1)
{
throw task.Exception.InnerExceptions[0];
}
throw task.Exception;
}
if (!completedInTime)
{
throw new TimeoutException($"Task did not complete in {timeout} seconds.");
}
}
}
}