From c31b78e45e4de343a05c99d1b04df624b6036e37 Mon Sep 17 00:00:00 2001 From: Artem Perepelitsa Date: Sat, 16 Oct 2021 12:18:52 +0300 Subject: [PATCH] Add a unit test to verify that an unawaited task reports exceptions --- src/UniTask/Assets/Tests/AsyncTest.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/UniTask/Assets/Tests/AsyncTest.cs b/src/UniTask/Assets/Tests/AsyncTest.cs index c329dbf..75eec2c 100644 --- a/src/UniTask/Assets/Tests/AsyncTest.cs +++ b/src/UniTask/Assets/Tests/AsyncTest.cs @@ -366,6 +366,28 @@ namespace Cysharp.Threading.TasksTests UniTaskScheduler.UnobservedTaskException -= action; }); + [UnityTest] + public IEnumerator ThrowExceptionUnawaited() => UniTask.ToCoroutine(async () => + { + LogAssert.Expect(LogType.Exception, "Exception: MyException"); + +#pragma warning disable 1998 + async UniTask Throw() => throw new Exception("MyException"); +#pragma warning restore 1998 + +#pragma warning disable 4014 + Throw(); +#pragma warning restore 4014 + + await UniTask.DelayFrame(3); + + GC.Collect(); + GC.WaitForPendingFinalizers(); + GC.Collect(); + + await UniTask.DelayFrame(1); + }); + async UniTask InException1() { await UniTask.Yield();