// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_4_5
using System;
using System.Threading;
}
}
+ [Category ("NotWorking")] // Bug #18629
[Test]
- public void GetResultNotCompleted ()
+ public void GetResultAfterMultipleExceptions ()
{
- TaskAwaiter<int> awaiter;
+ TaskAwaiter<object> awaiter;
+ CreateFaultedAwaiter (out awaiter);
+ try {
+ awaiter.GetResult ();
+ Assert.Fail ();
+ } catch (AggregateException ae) {
+ Assert.IsFalse (ae.StackTrace.Contains ("--- End"), "#1");
+ Assert.IsTrue (ae.StackTrace.Contains ("CreateFaultedAwaiter"), "#2");
+ }
+ }
- task = new Task<int> (() => 1);
- awaiter = task.GetAwaiter ();
+ static void CreateFaultedAwaiter (out TaskAwaiter<object> awaiter)
+ {
+ var faultedSource = new TaskCompletionSource<object>();
+ faultedSource.SetException(new Exception());
+ awaiter = faultedSource.Task.GetAwaiter ();
+ try {
+ awaiter.GetResult ();
+ } catch {
+ }
try {
awaiter.GetResult ();
- Assert.Fail ();
- } catch (InvalidOperationException) {
+ } catch {
}
}
}
}
-#endif
\ No newline at end of file