linux-packaging-mono/mcs/tests/test-async-85.cs
Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

75 lines
1.1 KiB
C#

using System;
using System.Threading.Tasks;
class Program
{
static int count;
static int Main ()
{
Test (false).Wait ();
Console.WriteLine (count);
if (count != 110011)
return 1;
count = 0;
Test (true).Wait ();
Console.WriteLine (count);
if (count != 111101)
return 2;
count = 0;
Test2 (false).Wait ();
Console.WriteLine (count);
if (count != 11)
return 3;
count = 0;
Test2 (true).Wait ();
Console.WriteLine (count);
if (count != 1101)
return 4;
return 0;
}
static async Task Test (bool throwTest)
{
try {
count += 1;
await Task.Delay (10);
if (throwTest)
throw new ApplicationException ();
count += 10;
} catch (ApplicationException) {
count += 100;
await Task.Delay (10);
count += 1000;
} finally {
count += 10000;
await Task.Delay (10);
count += 100000;
}
}
static async Task Test2 (bool throwTest)
{
try {
count += 1;
await Task.Delay (10);
if (throwTest)
throw new ApplicationException ();
count += 10;
} catch (ApplicationException) {
count += 100;
await Task.Delay (10);
count += 1000;
} finally {
}
}
}