[threads] Don't ignore abort requests in abort protected blocks
[mono-project.git] / mono / tests / delegate11.cs
blob5365c8a4520089f2e911566180b63ed5c8758ce9
1 using System;
3 public static class Driver
5 delegate void SimpleDelegate ();
7 static int error = 0;
9 class VirtualDelegate0
11 public virtual void OnEvent ()
13 Console.WriteLine ("VirtualDelegate0.OnEvent (error!)");
14 error = 1;
18 class VirtualDelegate1 : VirtualDelegate0
20 public override void OnEvent ()
22 Console.WriteLine ("VirtualDelegate1.OnEvent");
26 class NonVirtualDelegate
28 public void OnEvent ()
30 Console.WriteLine ("NonVirtualDelegate.OnEvent");
34 static bool check (SimpleDelegate d)
36 error = 0;
37 d ();
38 return error == 0;
41 public static int Main ()
43 SimpleDelegate dv = new SimpleDelegate (new VirtualDelegate1 ().OnEvent);
44 SimpleDelegate dnv = new SimpleDelegate (new NonVirtualDelegate ().OnEvent);
46 if (!check (dv + dv))
47 return 1;
48 if (!check (dnv + dv))
49 return 2;
50 if (!check (dv + dnv))
51 return 3;
52 if (!check (dnv + dnv))
53 return 4;
55 return 0;