[bcl] Update BCL Linked Size
[mono-project.git] / mcs / tests / test-async-72.cs
blob3621863a758b2f24ccb0ede1b7d13a743dc124bf
1 using System;
2 using System.Threading.Tasks;
4 class Test
6 static async Task<int> YieldValue (int a)
8 await Task.Yield ();
9 return a;
12 public static async Task<int> BreakTest ()
14 int value = 0;
15 try {
16 for (int i = 0; i < 8; ++i) {
17 try {
18 try {
19 value += await YieldValue (1);
21 Console.WriteLine ("i = " + i);
23 if (i > 2)
24 break;
26 if (i > 1)
27 throw new ApplicationException ();
28 } catch (ApplicationException) {
29 Console.WriteLine ("catch");
30 value += await YieldValue (100);
32 } finally {
33 Console.WriteLine ("F1");
34 value += await YieldValue (10);
37 } finally {
38 Console.WriteLine ("F2");
39 value += await YieldValue (1000);
42 return value;
45 public static async Task<int> ContinueTest ()
47 int value = 0;
48 try {
49 for (int i = 0; i < 8; ++i) {
50 try {
51 try {
52 value += await YieldValue (1);
54 Console.WriteLine ("i = " + i);
56 if (i < 2)
57 continue;
59 if (i > 1)
60 throw new ApplicationException ();
61 } catch (ApplicationException) {
62 Console.WriteLine ("catch");
63 value += await YieldValue (100);
65 } finally {
66 Console.WriteLine ("F1");
67 value += await YieldValue (10);
70 } finally {
71 Console.WriteLine ("F2");
72 value += await YieldValue (1000);
75 return value;
78 public static int Main ()
80 if (BreakTest ().Result != 1144)
81 return 1;
83 if (ContinueTest ().Result != 1688)
84 return 1;
86 return 0;