mirror of https://github.com/mono/CppSharp.git
Browse Source
git-svn-id: https://mono-soc-2010.googlecode.com/svn/trunk/cppinterop@46 a470b8cb-0e6f-1642-1b45-71e107334c4bpull/1/head
22 changed files with 458 additions and 110 deletions
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
|
||||
#include "TestFramework.h" |
||||
|
||||
NUnit* NUnit::Assert; |
||||
|
||||
extern "C" { |
||||
|
||||
void SetNUnitInterface (NUnit* nunit) |
||||
{ |
||||
NUnit::Assert = nunit; |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,106 @@
@@ -0,0 +1,106 @@
|
||||
|
||||
#ifndef _CPPINTEROP_TESTFRAMEWORK_H_ |
||||
#define _CPPINTEROP_TESTFRAMEWORK_H_ |
||||
|
||||
#ifdef __GNUC__ |
||||
#define EXPORT |
||||
#elif defined(_MSC_VER) |
||||
#define EXPORT __declspec(dllexport) |
||||
#else |
||||
#error Unknown compiler! |
||||
#endif |
||||
|
||||
typedef const char* string; |
||||
typedef unsigned int uint; |
||||
typedef unsigned long ulong; |
||||
|
||||
class NUnit { |
||||
public: |
||||
static NUnit* Assert; |
||||
|
||||
virtual void Fail (string message); |
||||
virtual void Fail (); |
||||
virtual void IsTrue (bool condition, string message); |
||||
virtual void IsTrue (bool condition); |
||||
virtual void IsFalse (bool condition, string message); |
||||
virtual void IsFalse (bool condition); |
||||
virtual void IsEmpty (string aString, string message); |
||||
virtual void IsEmpty (string aString); |
||||
virtual void IsNotEmpty (string aString, string message); |
||||
virtual void IsNotEmpty (string aString); |
||||
virtual void AreEqual (int expected, int actual, string message); |
||||
virtual void AreEqual (int expected, int actual); |
||||
virtual void AreEqual (long expected, long actual, string message); |
||||
virtual void AreEqual (long expected, long actual); |
||||
virtual void AreEqual (uint expected, uint actual, string message); |
||||
virtual void AreEqual (uint expected, uint actual); |
||||
virtual void AreEqual (ulong expected, ulong actual, string message); |
||||
virtual void AreEqual (ulong expected, ulong actual); |
||||
virtual void AreEqual (double expected, double actual, double delta, string message); |
||||
virtual void AreEqual (double expected, double actual, double delta); |
||||
virtual void AreEqual (float expected, float actual, float delta, string message); |
||||
virtual void AreEqual (float expected, float actual, float delta); |
||||
virtual void AreNotEqual (int expected, int actual, string message); |
||||
virtual void AreNotEqual (int expected, int actual); |
||||
virtual void AreNotEqual (long expected, long actual, string message); |
||||
virtual void AreNotEqual (long expected, long actual); |
||||
virtual void AreNotEqual (uint expected, uint actual, string message); |
||||
virtual void AreNotEqual (uint expected, uint actual); |
||||
virtual void AreNotEqual (ulong expected, ulong actual, string message); |
||||
virtual void AreNotEqual (ulong expected, ulong actual); |
||||
virtual void AreNotEqual (double expected, double actual, string message); |
||||
virtual void AreNotEqual (double expected, double actual); |
||||
virtual void AreNotEqual (float expected, float actual, string message); |
||||
virtual void AreNotEqual (float expected, float actual); |
||||
virtual void Greater (int expected, int actual, string message); |
||||
virtual void Greater (int expected, int actual); |
||||
virtual void Greater (long expected, long actual, string message); |
||||
virtual void Greater (long expected, long actual); |
||||
virtual void Greater (uint expected, uint actual, string message); |
||||
virtual void Greater (uint expected, uint actual); |
||||
virtual void Greater (ulong expected, ulong actual, string message); |
||||
virtual void Greater (ulong expected, ulong actual); |
||||
virtual void Greater (double expected, double actual, string message); |
||||
virtual void Greater (double expected, double actual); |
||||
virtual void Greater (float expected, float actual, string message); |
||||
virtual void Greater (float expected, float actual); |
||||
virtual void Less (int expected, int actual, string message); |
||||
virtual void Less (int expected, int actual); |
||||
virtual void Less (long expected, long actual, string message); |
||||
virtual void Less (long expected, long actual); |
||||
virtual void Less (uint expected, uint actual, string message); |
||||
virtual void Less (uint expected, uint actual); |
||||
virtual void Less (ulong expected, ulong actual, string message); |
||||
virtual void Less (ulong expected, ulong actual); |
||||
virtual void Less (double expected, double actual, string message); |
||||
virtual void Less (double expected, double actual); |
||||
virtual void Less (float expected, float actual, string message); |
||||
virtual void Less (float expected, float actual); |
||||
virtual void GreaterOrEqual (int expected, int actual, string message); |
||||
virtual void GreaterOrEqual (int expected, int actual); |
||||
virtual void GreaterOrEqual (long expected, long actual, string message); |
||||
virtual void GreaterOrEqual (long expected, long actual); |
||||
virtual void GreaterOrEqual (uint expected, uint actual, string message); |
||||
virtual void GreaterOrEqual (uint expected, uint actual); |
||||
virtual void GreaterOrEqual (ulong expected, ulong actual, string message); |
||||
virtual void GreaterOrEqual (ulong expected, ulong actual); |
||||
virtual void GreaterOrEqual (double expected, double actual, string message); |
||||
virtual void GreaterOrEqual (double expected, double actual); |
||||
virtual void GreaterOrEqual (float expected, float actual, string message); |
||||
virtual void GreaterOrEqual (float expected, float actual); |
||||
virtual void LessOrEqual (int expected, int actual, string message); |
||||
virtual void LessOrEqual (int expected, int actual); |
||||
virtual void LessOrEqual (long expected, long actual, string message); |
||||
virtual void LessOrEqual (long expected, long actual); |
||||
virtual void LessOrEqual (uint expected, uint actual, string message); |
||||
virtual void LessOrEqual (uint expected, uint actual); |
||||
virtual void LessOrEqual (ulong expected, ulong actual, string message); |
||||
virtual void LessOrEqual (ulong expected, ulong actual); |
||||
virtual void LessOrEqual (double expected, double actual, string message); |
||||
virtual void LessOrEqual (double expected, double actual); |
||||
virtual void LessOrEqual (float expected, float actual, string message); |
||||
virtual void LessOrEqual (float expected, float actual); |
||||
}; |
||||
|
||||
|
||||
#endif /* _CPPINTEROP_TESTFRAMEWORK_H_ */ |
||||
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
|
||||
#include "NUnit.h" |
||||
|
||||
class EXPORT VirtualMethodTestClass { |
||||
|
||||
virtual void V0 (int a1, int a2, int a3) |
||||
{ |
||||
NUnit::Assert->AreEqual (1, a1, "V0 #A1"); |
||||
NUnit::Assert->AreEqual (2, a2, "V0 #A2"); |
||||
NUnit::Assert->AreEqual (3, a3, "V0 #A3"); |
||||
} |
||||
|
||||
}; |
||||
|
||||
extern "C" { |
||||
VirtualMethodTestClass* CreateVirtualMethodTestClass () |
||||
{ |
||||
return new VirtualMethodTestClass (); |
||||
} |
||||
|
||||
void DestroyVirtualMethodTestClass (VirtualMethodTestClass* vmtc) |
||||
{ |
||||
delete vmtc; |
||||
} |
||||
} |
||||
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
using System; |
||||
using NUnit.Framework; |
||||
|
||||
using Mono.VisualC.Interop; |
||||
using Mono.VisualC.Interop.ABI; |
||||
|
||||
using Tests.Support; |
||||
|
||||
namespace Tests { |
||||
public class SharedAbiTests { |
||||
|
||||
protected CppLibrary test_lib { get; private set; } |
||||
protected IVirtualMethodTestClass virtual_test_class { get; private set; } |
||||
|
||||
protected SharedAbiTests (CppAbi abi) |
||||
{ |
||||
this.test_lib = new CppLibrary ("CPPTestLib", abi); |
||||
this.virtual_test_class = test_lib.GetClass<IVirtualMethodTestClass> ("VirtualMethodTestClass"); |
||||
CppNUnitAsserts.Init (); |
||||
} |
||||
|
||||
[Test] |
||||
public void TestVirtualMethods () |
||||
{ |
||||
CppInstancePtr vmtc = VirtualMethodTestClass.Create (); |
||||
|
||||
virtual_test_class.V0 (vmtc, 1, 2, 3); |
||||
|
||||
VirtualMethodTestClass.Destroy (vmtc); |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
@ -1,49 +0,0 @@
@@ -1,49 +0,0 @@
|
||||
using System; |
||||
using NUnit.Framework; |
||||
|
||||
using Mono.VisualC.Interop; |
||||
using Mono.VisualC.Interop.ABI; |
||||
|
||||
namespace Tests.Support { |
||||
public class CPPTestLibBase : ICppObject { |
||||
|
||||
protected CppLibrary TestLib { get; private set; } |
||||
|
||||
protected CPPTestLibBase () |
||||
{ |
||||
} |
||||
|
||||
protected CPPTestLibBase (CppAbi abi) |
||||
{ |
||||
this.TestLib = new CppLibrary ("CPPTestLib", abi); |
||||
} |
||||
|
||||
|
||||
protected CSimpleClass.ICSimpleClass Klass { |
||||
get { |
||||
if (CSimpleClass._impl == null) |
||||
CSimpleClass.Bind (TestLib); |
||||
return CSimpleClass._impl; |
||||
} |
||||
} |
||||
public IntPtr Native { |
||||
get { |
||||
throw new System.NotImplementedException (); |
||||
} |
||||
} |
||||
|
||||
public void Dispose () |
||||
{ |
||||
throw new System.NotImplementedException (); |
||||
} |
||||
|
||||
|
||||
} |
||||
|
||||
public interface EmptyTestInterface : ICppClassOverridable<CPPTestLibBase> { |
||||
} |
||||
|
||||
public struct EmptyTestStruct { |
||||
} |
||||
} |
||||
|
||||
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// CPPTestLibBase.cs: Base class for supporting tests using CPPTestLib
|
||||
//
|
||||
// Author:
|
||||
// Alexander Corrado (alexander.corrado@gmail.com)
|
||||
//
|
||||
// Copyright (C) 2010 Alexander Corrado
|
||||
//
|
||||
|
||||
using System; |
||||
using NUnit.Framework; |
||||
|
||||
using Mono.VisualC.Interop; |
||||
using Mono.VisualC.Interop.ABI; |
||||
|
||||
namespace Tests.Support { |
||||
public class CppMockObject : ICppObject { |
||||
|
||||
public static CppMockObject Instance = new CppMockObject (); |
||||
|
||||
protected CppMockObject () |
||||
{ |
||||
} |
||||
|
||||
public IntPtr Native { |
||||
get { |
||||
throw new System.NotImplementedException (); |
||||
} |
||||
} |
||||
|
||||
public void Dispose () |
||||
{ |
||||
throw new System.NotImplementedException (); |
||||
} |
||||
|
||||
|
||||
} |
||||
|
||||
public interface EmptyTestInterface : ICppClassOverridable<CppMockObject> { |
||||
} |
||||
|
||||
public struct EmptyTestStruct { |
||||
} |
||||
} |
||||
|
||||
@ -0,0 +1,107 @@
@@ -0,0 +1,107 @@
|
||||
using System; |
||||
using System.Runtime.InteropServices; |
||||
using NUnit.Framework; |
||||
using Mono.VisualC.Interop; |
||||
|
||||
namespace Tests.Support { |
||||
public static class CppNUnitAsserts { |
||||
|
||||
private interface IAssert : ICppClassOverridable<Assert> { |
||||
[Virtual] void Fail (CppInstancePtr @this, string message); |
||||
[Virtual] void Fail (CppInstancePtr @this); |
||||
[Virtual] void IsTrue (CppInstancePtr @this, bool condition, string message); |
||||
[Virtual] void IsTrue (CppInstancePtr @this, bool condition); |
||||
[Virtual] void IsFalse (CppInstancePtr @this, bool condition, string message); |
||||
[Virtual] void IsFalse (CppInstancePtr @this, bool condition); |
||||
[Virtual] void IsEmpty (CppInstancePtr @this, string aString, string message); |
||||
[Virtual] void IsEmpty (CppInstancePtr @this, string aString); |
||||
[Virtual] void IsNotEmpty (CppInstancePtr @this, string aString, string message); |
||||
[Virtual] void IsNotEmpty (CppInstancePtr @this, string aString); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, int expected, int actual, string message); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, int expected, int actual); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, long expected, long actual, string message); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, long expected, long actual); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, uint expected, uint actual, string message); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, uint expected, uint actual); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, ulong expected, ulong actual, string message); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, ulong expected, ulong actual); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, double expected, double actual, double delta, string message); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, double expected, double actual, double delta); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, float expected, float actual, float delta, string message); |
||||
[Virtual] void AreEqual (CppInstancePtr @this, float expected, float actual, float delta); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, int expected, int actual, string message); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, int expected, int actual); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, long expected, long actual, string message); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, long expected, long actual); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, uint expected, uint actual, string message); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, uint expected, uint actual); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, ulong expected, ulong actual, string message); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, ulong expected, ulong actual); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, double expected, double actual, string message); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, double expected, double actual); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, float expected, float actual, string message); |
||||
[Virtual] void AreNotEqual (CppInstancePtr @this, float expected, float actual); |
||||
[Virtual] void Greater (CppInstancePtr @this, int expected, int actual, string message); |
||||
[Virtual] void Greater (CppInstancePtr @this, int expected, int actual); |
||||
[Virtual] void Greater (CppInstancePtr @this, long expected, long actual, string message); |
||||
[Virtual] void Greater (CppInstancePtr @this, long expected, long actual); |
||||
[Virtual] void Greater (CppInstancePtr @this, uint expected, uint actual, string message); |
||||
[Virtual] void Greater (CppInstancePtr @this, uint expected, uint actual); |
||||
[Virtual] void Greater (CppInstancePtr @this, ulong expected, ulong actual, string message); |
||||
[Virtual] void Greater (CppInstancePtr @this, ulong expected, ulong actual); |
||||
[Virtual] void Greater (CppInstancePtr @this, double expected, double actual, string message); |
||||
[Virtual] void Greater (CppInstancePtr @this, double expected, double actual); |
||||
[Virtual] void Greater (CppInstancePtr @this, float expected, float actual, string message); |
||||
[Virtual] void Greater (CppInstancePtr @this, float expected, float actual); |
||||
[Virtual] void Less (CppInstancePtr @this, int expected, int actual, string message); |
||||
[Virtual] void Less (CppInstancePtr @this, int expected, int actual); |
||||
[Virtual] void Less (CppInstancePtr @this, long expected, long actual, string message); |
||||
[Virtual] void Less (CppInstancePtr @this, long expected, long actual); |
||||
[Virtual] void Less (CppInstancePtr @this, uint expected, uint actual, string message); |
||||
[Virtual] void Less (CppInstancePtr @this, uint expected, uint actual); |
||||
[Virtual] void Less (CppInstancePtr @this, ulong expected, ulong actual, string message); |
||||
[Virtual] void Less (CppInstancePtr @this, ulong expected, ulong actual); |
||||
[Virtual] void Less (CppInstancePtr @this, double expected, double actual, string message); |
||||
[Virtual] void Less (CppInstancePtr @this, double expected, double actual); |
||||
[Virtual] void Less (CppInstancePtr @this, float expected, float actual, string message); |
||||
[Virtual] void Less (CppInstancePtr @this, float expected, float actual); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, int expected, int actual, string message); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, int expected, int actual); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, long expected, long actual, string message); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, long expected, long actual); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, uint expected, uint actual, string message); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, uint expected, uint actual); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, ulong expected, ulong actual, string message); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, ulong expected, ulong actual); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, double expected, double actual, string message); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, double expected, double actual); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, float expected, float actual, string message); |
||||
[Virtual] void GreaterOrEqual (CppInstancePtr @this, float expected, float actual); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, int expected, int actual, string message); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, int expected, int actual); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, long expected, long actual, string message); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, long expected, long actual); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, uint expected, uint actual, string message); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, uint expected, uint actual); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, ulong expected, ulong actual, string message); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, ulong expected, ulong actual); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, double expected, double actual, string message); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, double expected, double actual); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, float expected, float actual, string message); |
||||
[Virtual] void LessOrEqual (CppInstancePtr @this, float expected, float actual); |
||||
} |
||||
|
||||
private static CppInstancePtr? nunitInterface; |
||||
public static void Init () |
||||
{ |
||||
if (!nunitInterface.HasValue) |
||||
nunitInterface = CppInstancePtr.ForManagedObject<IAssert,Assert> (null); |
||||
|
||||
SetNUnitInterface ((IntPtr)nunitInterface.Value); |
||||
} |
||||
|
||||
[DllImport("CPPTestLib")] |
||||
private static extern void SetNUnitInterface (IntPtr nunit); |
||||
} |
||||
} |
||||
|
||||
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
using System; |
||||
using System.Runtime.InteropServices; |
||||
using Mono.VisualC.Interop; |
||||
|
||||
namespace Tests |
||||
{ |
||||
public interface IVirtualMethodTestClass : ICppClass { |
||||
[Virtual] void V0 (CppInstancePtr @this, int a1, int a2, int a3); |
||||
} |
||||
|
||||
public static class VirtualMethodTestClass { |
||||
|
||||
public static CppInstancePtr Create () |
||||
{ |
||||
return CreateVirtualMethodTestClass (); |
||||
} |
||||
|
||||
public static void Destroy (CppInstancePtr vmtc) |
||||
{ |
||||
DestroyVirtualMethodTestClass ((IntPtr)vmtc); |
||||
} |
||||
|
||||
|
||||
[DllImport("CPPTestLib")] |
||||
private static extern IntPtr CreateVirtualMethodTestClass (); |
||||
|
||||
[DllImport("CPPTestLib")] |
||||
private static extern void DestroyVirtualMethodTestClass (IntPtr vmtc); |
||||
} |
||||
|
||||
} |
||||
|
||||
Loading…
Reference in new issue