public override bool StructSimpleOut(out Dummy.StructSimple simple) { called = true; simple = new Dummy.StructSimple(); simple.Fstring = "Virtual Struct Out"; return(true); }
internal static void checkZeroedStructSimple(Dummy.StructSimple simple) { Test.Assert(simple.Fbyte == 0); Test.Assert(simple.Fubyte == 0); Test.Assert(simple.Fchar == '\0'); Test.Assert(simple.Fshort == 0); Test.Assert(simple.Fushort == 0); Test.Assert(simple.Fint == 0); Test.Assert(simple.Fuint == 0); Test.Assert(simple.Flong == 0); Test.Assert(simple.Fulong == 0); Test.Assert(simple.Fllong == 0); Test.Assert(simple.Fullong == 0); Test.Assert(simple.Fint8 == 0); Test.Assert(simple.Fuint8 == 0); Test.Assert(simple.Fint16 == 0); Test.Assert(simple.Fuint16 == 0); Test.Assert(simple.Fint32 == 0); Test.Assert(simple.Fuint32 == 0); Test.Assert(simple.Fint64 == 0); Test.Assert(simple.Fuint64 == 0); Test.Assert(simple.Fssize == 0); Test.Assert(simple.Fsize == 0); Test.Assert(simple.Fintptr == IntPtr.Zero); Test.Assert(simple.Fptrdiff == 0); Test.Assert(simple.Ffloat == 0); Test.Assert(simple.Fdouble == 0); Test.Assert(simple.Fbool == false); Test.Assert(simple.Fenum == Dummy.SampleEnum.V0); Test.Assert(simple.Fstring == null); Test.Assert(simple.Fmstring == null); Test.Assert(simple.Fstringshare == null); }
public override bool StructSimpleIn(Dummy.StructSimple simple) { called = true; received = simple; return(true); }
internal static void checkStructSimple(Dummy.StructSimple simple) { Test.Assert(simple.Fbyte == (sbyte)-126); Test.Assert(simple.Fubyte == (byte)254u); Test.Assert(simple.Fchar == '~'); Test.Assert(simple.Fshort == (short)-32766); Test.Assert(simple.Fushort == (ushort)65534u); Test.Assert(simple.Fint == -32766); Test.Assert(simple.Fuint == 65534u); Test.Assert(simple.Flong == -2147483646); Test.Assert(simple.Fulong == 4294967294u); Test.Assert(simple.Fllong == -9223372036854775806); Test.Assert(simple.Fullong == 18446744073709551614u); Test.Assert(simple.Fint8 == (sbyte)-126); Test.Assert(simple.Fuint8 == (byte)254u); Test.Assert(simple.Fint16 == (short)-32766); Test.Assert(simple.Fuint16 == (ushort)65534u); Test.Assert(simple.Fint32 == -2147483646); Test.Assert(simple.Fuint32 == 4294967294u); Test.Assert(simple.Fint64 == -9223372036854775806); Test.Assert(simple.Fuint64 == 18446744073709551614u); Test.Assert(simple.Fssize == -2147483646); Test.Assert(simple.Fsize == 4294967294u); Test.Assert(simple.Fintptr == (IntPtr)0xFE); Test.Assert(simple.Fptrdiff == -2147483646); Test.Assert(simple.Ffloat == -16777216.0f); Test.Assert(simple.Fdouble == -9007199254740992.0); Test.Assert(simple.Fbool == true); Test.Assert(simple.Fenum == Dummy.SampleEnum.V2); Test.Assert(simple.Fstring == "test/string"); Test.Assert(simple.Fmstring == "test/mstring"); Test.Assert(simple.Fstringshare == "test/stringshare"); }
/* * public override Dummy.StructSimple StructSimplePtrOut(out Dummy.StructSimple simple) { * called = true; * // No way to explicitly define the ownership of the parameter. * simple = new Dummy.StructSimple(); * simple.Fstring = "Virtual Struct Ptr Out"; * return simple; * } * * public override Dummy.StructSimple StructSimplePtrOutOwn(out Dummy.StructSimple simple) { * called = true; * // No way to explicitly define the ownership of the parameter. * simple = new Dummy.StructSimple(); * simple.Fstring = "Virtual Struct Ptr Out Own"; * return simple; * } */ public override Dummy.StructSimple StructSimpleReturn() { called = true; var simple = new Dummy.StructSimple(fstring: "Virtual Struct Return"); return(simple); }
public override Dummy.StructSimple StructSimplePtrOutOwn(out Dummy.StructSimple simple) { called = true; // No way to explicitly define the ownership of the parameter. simple = new Dummy.StructSimple(); simple.Fstring = "Virtual Struct Ptr Out Own"; return(simple); }
public static void simple_ptr_return_own_virtual() { StructReturner t = new StructReturner(); Dummy.StructSimple simple = t.CallStructSimplePtrReturnOwn(); Test.Assert(t.called, "override was not called"); Test.AssertEquals("Virtual Struct Ptr Return Own", simple.Fstring); }
public override Dummy.StructSimple StructSimplePtrReturnOwn() { called = true; var simple = new Dummy.StructSimple(); simple.Fstring = "Virtual Struct Ptr Return Own"; return(simple); }
public static void simple_ptr_out_own() { Dummy.StructSimple simple; var t = new Dummy.TestObject(); Dummy.StructSimple result = t.StructSimplePtrOutOwn(out simple); Test.AssertEquals(result.Fint, simple.Fint); Test.AssertEquals(simple.Fstring, "Ptr Out Own"); }
public static void simple_out() { var simple = new Dummy.StructSimple(); var t = new Dummy.TestObject(); bool r = t.StructSimpleOut(out simple); Test.Assert(r, "Function returned false"); checkStructSimple(simple); }
/* * public static void simple_ptr_out_virtual() * { * StructReturner t = new StructReturner(); * Dummy.StructSimple simple; * t.CallStructSimplePtrOut(out simple); * Test.Assert(t.called, "override was not called"); * Test.AssertEquals("Virtual Struct Ptr Out", simple.Fstring); * } * * public static void simple_ptr_out_own_virtual() * { * StructReturner t = new StructReturner(); * Dummy.StructSimple simple; * t.CallStructSimplePtrOutOwn(out simple); * Test.Assert(t.called, "override was not called"); * Test.AssertEquals("Virtual Struct Ptr Out Own", simple.Fstring); * } */ public static void simple_return_virtual() { StructReturner t = new StructReturner(); Dummy.StructSimple simple = t.CallStructSimpleReturn(); Test.Assert(t.called, "override was not called"); Test.AssertEquals("Virtual Struct Return", simple.Fstring); t.Dispose(); }
public static void parameter_initialization() { var simple = new Dummy.StructSimple(0x1, 0x2, (char)0x3, 0x4, 0x5); Test.AssertEquals(0x1, simple.Fbyte); Test.AssertEquals(0x2, simple.Fubyte); Test.AssertEquals(0x3, simple.Fchar); Test.AssertEquals(0x4, simple.Fshort); Test.AssertEquals(0x5, simple.Fushort); Test.AssertEquals(0, simple.Fint); }
public static void simple_ptr_in_own() { var simple = structSimpleWithValues(); int original = simple.Fint; simple.Fmstring = "Struct Ptr In Own"; var t = new Dummy.TestObject(); Dummy.StructSimple result = t.StructSimplePtrInOwn(ref simple); Test.AssertEquals(-original, result.Fint); Test.AssertEquals("nwO nI rtP tcurtS", result.Fmstring); }
public static void event_with_struct_payload() { var obj = new Dummy.TestObject(); Dummy.StructSimple received_struct = default(Dummy.StructSimple); obj.EvtWithStructEvent += (object sender, Dummy.TestObjectEvtWithStructEventArgs e) => { received_struct = e.Arg; }; Dummy.StructSimple sent_struct = new Dummy.StructSimple(fstring: "Struct Event"); obj.EmitEventWithStruct(sent_struct); Test.AssertEquals(sent_struct.Fstring, received_struct.Fstring); obj.Dispose(); }
// Auxiliary function // internal static Dummy.StructSimple structSimpleWithValues() { var simple = new Dummy.StructSimple(); simple.Fbyte = (sbyte)-126; simple.Fubyte = (byte)254u; simple.Fchar = '~'; simple.Fshort = (short)-32766; simple.Fushort = (ushort)65534u; simple.Fint = -32766; simple.Fuint = 65534u; simple.Flong = -2147483646; simple.Fulong = 4294967294u; simple.Fllong = -9223372036854775806; simple.Fullong = 18446744073709551614u; simple.Fint8 = (sbyte)-126; simple.Fuint8 = (byte)254u; simple.Fint16 = (short)-32766; simple.Fuint16 = (ushort)65534u; simple.Fint32 = -2147483646; simple.Fuint32 = 4294967294u; simple.Fint64 = -9223372036854775806; simple.Fuint64 = 18446744073709551614u; simple.Fssize = -2147483646; simple.Fsize = 4294967294u; simple.Fintptr = (IntPtr)0xFE; simple.Fptrdiff = -2147483646; simple.Ffloat = -16777216.0f; simple.Fdouble = -9007199254740992.0; simple.Fbool = true; simple.Fvoid_ptr = (IntPtr)0xFE; simple.Fenum = Dummy.SampleEnum.V2; simple.Fstring = "test/string"; simple.Fmstring = "test/mstring"; simple.Fstringshare = "test/stringshare"; return(simple); }
public StructReturner() : base(null) { called = false; received = default(Dummy.StructSimple); }
public override Dummy.StructSimple StructSimplePtrInOwn(ref Dummy.StructSimple simple) { called = true; received = simple; return(received); }
public override bool StructSimplePtrIn(ref Dummy.StructSimple simple) { called = true; simple.Fstring = "Virtual Struct Ptr In"; return(true); }
// Test cases // // Default initialization (C# side) private static void simple_default_instantiation() { var simple = new Dummy.StructSimple(); checkZeroedStructSimple(simple); }