aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs')
-rw-r--r--Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs17
1 files changed, 17 insertions, 0 deletions
diff --git a/Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs b/Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs
index f2c25e7a2..dd74e27c3 100644
--- a/Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs
+++ b/Examples/test-suite/csharp/cpp11_strongly_typed_enumerations_runme.cs
@@ -9,6 +9,11 @@ public class cpp11_strongly_typed_enumerations_runme {
return expected + 1;
}
+ public static void enumTypeCheck(Type actual, Type expected) {
+ if (actual != expected)
+ throw new ApplicationException("Enum type incorrect. Expected " + expected + " Actual: " + actual);
+ }
+
public static void Main() {
int val = 0;
val = enumCheck((int)Enum1.Val1, val);
@@ -164,6 +169,18 @@ public class cpp11_strongly_typed_enumerations_runme {
enumCheck((int)cpp11_strongly_typed_enumerations.globalTest1(Enum1.Val5a), 13);
enumCheck((int)cpp11_strongly_typed_enumerations.globalTest2(Class1.Enum12.Val5c), 1121);
enumCheck((int)cpp11_strongly_typed_enumerations.globalTest3(Class1.Struct1.Enum12.Val5f), 3121);
+
+ // Check underlying enum type
+ enumTypeCheck(Enum.GetUnderlyingType(Enum2.Val1.GetType()), ((short)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum4.Val1.GetType()), ((uint)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum5.Val1.GetType()), ((int)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum9.Val1.GetType()), ((ushort)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum7td.Val1.GetType()), ((uint)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum10.Val1.GetType()), ((byte)0).GetType());
+
+ enumTypeCheck(Enum.GetUnderlyingType(Enum15.Val1.GetType()), ((short)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum16.Val1.GetType()), ((long)0).GetType());
+ enumTypeCheck(Enum.GetUnderlyingType(Enum17.Val1.GetType()), ((ulong)0).GetType());
}
}