New tests, updates.
[mono.git] / mcs / tests / test-507.cs
1 using System;\r
2 using System.Reflection;\r
3 \r
4 namespace NewslotVirtualFinal\r
5 {\r
6         internal interface INewslotVirtualFinal\r
7         {\r
8                 void SomeMethod();\r
9                 void SomeMethod2();\r
10         }\r
11 \r
12         internal class NewslotVirtualFinal : INewslotVirtualFinal\r
13         {\r
14                 private NewslotVirtualFinal()\r
15                 {\r
16                 }\r
17 \r
18                 public void SomeMethod()\r
19                 {\r
20                 }\r
21 \r
22                 public virtual void SomeMethod2()\r
23                 {\r
24                 }\r
25         }\r
26         \r
27         class C\r
28         {\r
29                 public static int Main ()\r
30                 {\r
31                         Type t = typeof (NewslotVirtualFinal);\r
32                         MethodInfo mi = t.GetMethod ("SomeMethod");\r
33                         if (mi.Attributes != (MethodAttributes.PrivateScope | MethodAttributes.Public | MethodAttributes.Final | MethodAttributes.Virtual | MethodAttributes.HideBySig | MethodAttributes.VtableLayoutMask))\r
34                                 return 1;\r
35                         \r
36                         mi = t.GetMethod ("SomeMethod2");\r
37                         if (mi.Attributes != (MethodAttributes.PrivateScope | MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.HideBySig | MethodAttributes.VtableLayoutMask))\r
38                                 return 2;\r
39                         \r
40                         Console.WriteLine ("OK");\r
41                         return 0;\r
42                 }\r
43         }\r
44 }