Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / dtest-033.cs
index 8a0f13b93d3d999b1facf83d3a617956515dfc7d..c01a0fae71b21f738ea359eb178e8072826c8707 100644 (file)
@@ -11,6 +11,11 @@ public class Test
                get { return 2; }
                set { }
        }
+       
+       byte Byte = 200;
+       static dynamic V;
+       dynamic DynamicByte;
+       byte[] ByteArray = { 1, 100 };
 
        public static int Main ()
        {
@@ -24,11 +29,67 @@ public class Test
 
                if (v != "a-sdfas")
                        return 1;
+               
+               dynamic d2 = null;
+               d2 += "a";
+               if (d2 != "a")
+                       return 2;
 
                byte b = 4;
                a.Prop *= b;
                a[4] ^= b;
+               
+               dynamic d = 1;
+/*
+               b = byte.MaxValue;
+               try {
+                       checked {
+                               b += d;
+                               return 3;
+                       }
+               } catch (OverflowException) {
+               }
+                       
+               b += d;
+*/
+               try {
+                       checked {
+                               a.Byte += 100;
+                               return 4;
+                       }
+               } catch (OverflowException) {
+               }
+               
+               a.Byte += 100;
+               
+               checked {
+                       d = byte.MaxValue;
+                       d += 100;
+               }
+
+               checked {
+                       V = byte.MaxValue;
+                       V -= 300;
+               }
+
+               var t = new Test ();
+               t.DynamicByte = byte.MaxValue;
+               d = t;
+               checked {
+                       d.DynamicByte -= 500;
+               }
+               
+               if (t.DynamicByte != -245)
+                       return 5;
+
+               try {
+                       checked {
+                               d.ByteArray[1] += 200;
+                               return 6;
+                       }                       
+               } catch (OverflowException) {
+               }
 
                return 0;
        }
-}
\ No newline at end of file
+}