Merge pull request #1464 from akoeplinger/fix-portable-target
[mono.git] / mono / tests / cominterop.cs
index 08e9880f87716ca673fa4e96456c38241475f9f9..fbfdcbbb16b763ad02e9852402e36055c2c0e64a 100644 (file)
@@ -66,42 +66,81 @@ public class Tests
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_sbyte([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_sbyte_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_byte([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_byte_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_short([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_short_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_ushort([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_ushort_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_int([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_int_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_uint([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_uint_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_long([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_long_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_ulong([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_ulong_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_float([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_float_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_double([MarshalAs(UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_double_byref([MarshalAs(UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_bstr ([MarshalAs (UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_bstr_byref ([MarshalAs (UnmanagedType.Struct)]out object obj);
+
        [DllImport("libtest")]
        public static extern int mono_test_marshal_variant_out_bool_true ([MarshalAs (UnmanagedType.Struct)]out object obj);
 
+       [DllImport("libtest")]
+       public static extern int mono_test_marshal_variant_out_bool_true_byref ([MarshalAs (UnmanagedType.Struct)]out object obj);
+
        [DllImport ("libtest")]
        public static extern int mono_test_marshal_variant_out_bool_false ([MarshalAs (UnmanagedType.Struct)]out object obj);
 
+       [DllImport ("libtest")]
+       public static extern int mono_test_marshal_variant_out_bool_false_byref ([MarshalAs (UnmanagedType.Struct)]out object obj);
+
 
        public delegate int VarFunc (VarEnum vt, [MarshalAs (UnmanagedType.Struct)] object obj);
 
@@ -389,6 +428,29 @@ public class Tests
                        if (mono_test_marshal_variant_out_bool_true_unmanaged (reffunc) != 0)
                                return 61;
 
+                       if (mono_test_marshal_variant_out_sbyte_byref (out obj) != 0 || (sbyte)obj != 100)
+                               return 97;
+                       if (mono_test_marshal_variant_out_byte_byref (out obj) != 0 || (byte)obj != 100)
+                               return 98;
+                       if (mono_test_marshal_variant_out_short_byref (out obj) != 0 || (short)obj != 314)
+                               return 99;
+                       if (mono_test_marshal_variant_out_ushort_byref (out obj) != 0 || (ushort)obj != 314)
+                               return 100;
+                       if (mono_test_marshal_variant_out_int_byref (out obj) != 0 || (int)obj != 314)
+                               return 101;
+                       if (mono_test_marshal_variant_out_uint_byref (out obj) != 0 || (uint)obj != 314)
+                               return 102;
+                       if (mono_test_marshal_variant_out_long_byref (out obj) != 0 || (long)obj != 314)
+                               return 103;
+                       if (mono_test_marshal_variant_out_ulong_byref (out obj) != 0 || (ulong)obj != 314)
+                               return 104;
+                       if (mono_test_marshal_variant_out_float_byref (out obj) != 0 || ((float)obj - 3.14) / 3.14 > .001)
+                               return 105;
+                       if (mono_test_marshal_variant_out_double_byref (out obj) != 0 || ((double)obj - 3.14) / 3.14 > .001)
+                               return 106;
+                       if (mono_test_marshal_variant_out_bstr_byref (out obj) != 0 || (string)obj != "PI")
+                               return 107;
+
                        #endregion // VARIANT Tests
 
                        #region Runtime Callable Wrapper Tests