2006-06-15 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Thu, 15 Jun 2006 17:39:15 +0000 (17:39 -0000)
committerZoltan Varga <vargaz@gmail.com>
Thu, 15 Jun 2006 17:39:15 +0000 (17:39 -0000)
* pinvoke-2.cs: Rename to pinvoke-2.2.cs.

* Makefile.am (TEST_CS2_SRC): Add pinvoke-2.2.cs

* pinvoke-2.2.cs libtest.c: Add Marshal.GetDelegateForFunctionPointer () tests.

svn path=/trunk/mono/; revision=61762

1  2 
mono/tests/Makefile.am
mono/tests/libtest.c
mono/tests/pinvoke-2.2.cs
mono/tests/pinvoke-2.cs

index c4719fa570b1ed4b852ea52dd47a96e38c7c0cc2,c4719fa570b1ed4b852ea52dd47a96e38c7c0cc2..a155ee019099f4ecefee253aa6810e652d1bb7f4
@@@ -253,7 -253,7 +253,7 @@@ TEST_IL_SRC=                       
        test-enum-indstoreil.il \
        even-odd.il
  
--TEST_CS2_SRC = interlocked-2.2.cs
++TEST_CS2_SRC = interlocked-2.2.cs pinvoke-2.2.cs
  TEST_IL2_SRC = find-method.2.il
  
  TESTSI_CS=$(TEST_CS_SRC:.cs=.exe)
index fbb54efe79b6439d92e4d282912a6f9c5f936a7b,fbb54efe79b6439d92e4d282912a6f9c5f936a7b..96fd60c2958520a3e231351b1b7e2eaab6c23851
@@@ -1822,6 -1822,6 +1822,18 @@@ mono_test_marshal_return_string_array_d
        return res;
  }
  
++STDCALL int
++add_delegate (int i, int j)
++{
++      return i + j;
++}
++
++STDCALL gpointer
++mono_test_marshal_return_fnptr (void)
++{
++      return &add_delegate;
++}
++
  /*
   * COM INTEROP TESTS
   */
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..039bcda994eabe1816fe9d2b2fadceb29eb66e25
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,44 @@@
++//
++// pinvoke-2.cs:
++//
++//  Tests for net 2.0 pinvoke features
++//
++
++using System;
++using System.Runtime.InteropServices;
++
++public class Tests {
++
++      public static int Main () {
++              return TestDriver.RunTests (typeof (Tests));
++      }
++
++      [UnmanagedFunctionPointerAttribute (CallingConvention.Cdecl)]
++      public delegate int CdeclDelegate (int i, int j);
++
++      [DllImport ("libtest", EntryPoint="mono_test_marshal_cdecl_delegate")]
++      public static extern int mono_test_marshal_cdecl_delegate (CdeclDelegate d);    
++
++      public static int cdecl_delegate (int i, int j) {
++              return i + j;
++      }
++
++      static int test_0_marshal_cdecl_delegate () {
++              CdeclDelegate d = new CdeclDelegate (cdecl_delegate);
++
++              return mono_test_marshal_cdecl_delegate (d);
++      }
++
++      [DllImport ("libtest", EntryPoint="mono_test_marshal_return_fnptr")]
++      public static extern IntPtr mono_test_marshal_return_fnptr ();
++
++      delegate int AddDelegate (int i, int j);
++
++      static int test_4_get_delegate_for_function_pointer () {
++              IntPtr ptr = mono_test_marshal_return_fnptr ();
++
++              AddDelegate d = (AddDelegate)Marshal.GetDelegateForFunctionPointer (ptr, typeof (AddDelegate));
++
++              return d (2, 2);
++      }
++}
diff --cc mono/tests/pinvoke-2.cs
index 9b76e49ba2aa960b4fb79a6f154b60a2f8f473e5,9b76e49ba2aa960b4fb79a6f154b60a2f8f473e5..0000000000000000000000000000000000000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,31 -1,31 +1,0 @@@
--//
--// pinvoke-2.cs:
--//
--//  Tests for net 2.0 pinvoke features
--//
--
--using System;
--using System.Runtime.InteropServices;
--
--public class Tests {
--
--      public static int Main () {
--              return TestDriver.RunTests (typeof (Tests));
--      }
--
--      [UnmanagedFunctionPointerAttribute (CallingConvention.Cdecl)]
--      public delegate int CdeclDelegate (int i, int j);
--
--      [DllImport ("libtest", EntryPoint="mono_test_marshal_cdecl_delegate")]
--      public static extern int mono_test_marshal_cdecl_delegate (CdeclDelegate d);    
--
--      public static int cdecl_delegate (int i, int j) {
--              return i + j;
--      }
--
--      static int test_0_marshal_cdecl_delegate () {
--              CdeclDelegate d = new CdeclDelegate (cdecl_delegate);
--
--              return mono_test_marshal_cdecl_delegate (d);
--      }
--}