New tests.
authorMarek Safar <marek.safar@gmail.com>
Wed, 16 Sep 2009 15:49:48 +0000 (15:49 -0000)
committerMarek Safar <marek.safar@gmail.com>
Wed, 16 Sep 2009 15:49:48 +0000 (15:49 -0000)
svn path=/trunk/mcs/; revision=142056

mcs/tests/dtest-003.cs
mcs/tests/dtest-006.cs

index c900fa45a81b84167ce024ef116b73a2612dea7d..b1d2f95d0ea490931150bf29f47cfa400d9d73e5 100644 (file)
@@ -21,11 +21,6 @@ class AssertDynamicObject : DynamicMetaObject
                this.mock = mock;
        }
 
-       DynamicMetaObject GetFakeMetaObject ()
-       {
-               return GetFakeMetaObject (1);
-       }
-
        DynamicMetaObject GetFakeMetaObject (object value)
        {
                Type t = value == null ? typeof (object) : value.GetType ();
@@ -186,11 +181,6 @@ class Tester : DynamicObjectMock
        {
        }
 
-       static void Assert<T> (T expected, T value)
-       {
-               Assert (expected, value, null);
-       }
-
        static void Assert<T> (T expected, T value, string name)
        {
                if (!EqualityComparer<T>.Default.Equals (expected, value)) {
@@ -217,6 +207,8 @@ class Tester : DynamicObjectMock
                }
        }
 
+#pragma warning disable 168, 169, 219
+
        void BinaryAdd_1 (dynamic d, DynamicObjectMock mock)
        {
                mock.BinaryOperation = (binder, arg) => {
@@ -302,6 +294,28 @@ class Tester : DynamicObjectMock
 
                d = checked (d + 3);
        }
+       
+       void BinaryAddChecked_2 (dynamic d, DynamicObjectMock mock)
+       {
+               mock.BinaryOperation = (binder, arg) => {
+                       Assert (binder.Operation, ExpressionType.Add, "Operation");
+                       Assert (binder.IsChecked, true, "IsChecked");
+                       Assert (binder.IsMemberAccess, false, "IsMemberAccess");
+                       Assert (binder.ArgumentInfo, new[] {
+                               new CSharpArgumentInfo (CSharpArgumentInfoFlags.None, null),
+                               new CSharpArgumentInfo (CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.LiteralConstant, null) },
+                               "ArgumentInfo");
+
+                       Assert (arg, 3, "arg");
+               };
+
+               Func<dynamic> r;
+               checked {
+                       r = () => d + 3;
+               }
+               
+               r ();
+       }
 
        void BinaryAddAssign_1 (dynamic d, DynamicObjectMock mock)
        {
@@ -1360,6 +1374,8 @@ class Tester : DynamicObjectMock
 
                object x = d || null;
        }
+       
+#pragma warning restore 168, 169, 219
 
        static bool RunTest (MethodInfo test)
        {
@@ -1390,4 +1406,4 @@ class Tester : DynamicObjectMock
                Console.WriteLine (failures + " tests failed");
                return failures;
        }
-}
\ No newline at end of file
+}
index af0996853b5fc907f271dd9e4f24ba09a2cbdc00..e6422b81f56edf445ed346d23e01b2214306ab23 100644 (file)
@@ -402,11 +402,11 @@ class Tester
                        int v = int.MaxValue;
                        AssertChecked (() => d + v, 7, "#1");
 
-       //              int? v2 = v;
-               //      AssertChecked (() => d + v2, null, "#2");
+                       int? v2 = v;
+                       AssertChecked (() => d + v2, null, "#2");
 
-//                     MyType v3 = new MyType (int.MaxValue);
-       //              AssertChecked (() => d + v3, new MyType (35), "#3");
+                       MyType v3 = new MyType (int.MaxValue);
+                       AssertChecked (() => d + v3, new MyType (35), "#3");
                }
        }