diff --git a/tests/Basic/Basic.Tests.cs b/tests/Basic/Basic.Tests.cs index c2469ab5..7893748e 100644 --- a/tests/Basic/Basic.Tests.cs +++ b/tests/Basic/Basic.Tests.cs @@ -55,12 +55,20 @@ public class BasicTests : GeneratorTestFixture //Assert.That(hello.RetEnum(Enum.D), Is.EqualTo(-2147483648)); Assert.That(hello.RetEnum(Enum.E), Is.EqualTo(1)); Assert.That(hello.RetEnum(Enum.F), Is.EqualTo(-9)); + } + + [Test] + public void TestPrimitiveConstCharStringInOut() + { + var hello = new Hello(); string str; hello.StringOut(out str); Assert.That(str, Is.EqualTo("HelloStringOut")); + hello.StringOutRef(out str); + Assert.That(str, Is.EqualTo("HelloStringOutRef")); } - + [Test] public void TestPrimitiveOutParameters() { diff --git a/tests/Basic/Basic.cpp b/tests/Basic/Basic.cpp index a19d482e..c992e5ee 100644 --- a/tests/Basic/Basic.cpp +++ b/tests/Basic/Basic.cpp @@ -208,6 +208,11 @@ void Hello::StringOut(CS_OUT const char** str) *str = "HelloStringOut"; } +void Hello::StringOutRef(CS_OUT const char*& str) +{ + str = "HelloStringOutRef"; +} + int unsafeFunction(const Bar& ret, char* testForString, void (*foo)(int)) { return ret.A; diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 60fc5b6d..7dcd7d65 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -134,6 +134,7 @@ public: void EnumInOutRef(CS_IN_OUT Enum& e); void StringOut(CS_OUT const char** str); + void StringOutRef(CS_OUT const char*& str); }; class DLL_API AbstractFoo