diff --git a/SWIG/Examples/test-suite/java/li_std_string_runme.java b/SWIG/Examples/test-suite/java/li_std_string_runme.java index eb6a896bb..09e41ba6e 100644 --- a/SWIG/Examples/test-suite/java/li_std_string_runme.java +++ b/SWIG/Examples/test-suite/java/li_std_string_runme.java @@ -66,11 +66,37 @@ public class li_std_string_runme { li_std_string.test_throw(); throw new Throwable("Test 5 failed"); } catch (RuntimeException e) { + if (!e.getMessage().equals("test_throw message")) + throw new Exception("Test 5 string check: " + e.getMessage()); } try { li_std_string.test_const_reference_throw(); throw new Throwable("Test 6 failed"); } catch (RuntimeException e) { + if (!e.getMessage().equals("test_const_reference_throw message")) + throw new Exception("Test 6 string check: " + e.getMessage()); } + + // Global variables + String s = "initial string"; + if (!li_std_string.getGlobalString2().equals("global string 2")) + throw new Exception("GlobalString2 test 1"); + li_std_string.setGlobalString2(s); + if (!li_std_string.getGlobalString2().equals(s)) + throw new Exception("GlobalString2 test 2"); + + // Member variables + Structure myStructure = new Structure(); + if (!myStructure.getMemberString2().equals("member string 2")) + throw new Exception("MemberString2 test 1"); + myStructure.setMemberString2(s); + if (!myStructure.getMemberString2().equals(s)) + throw new Exception("MemberString2 test 2"); + + if (!Structure.getStaticMemberString2().equals("static member string 2")) + throw new Exception("StaticMemberString2 test 1"); + Structure.setStaticMemberString2(s); + if (!Structure.getStaticMemberString2().equals(s)) + throw new Exception("StaticMemberString2 test 2"); } } diff --git a/SWIG/Examples/test-suite/li_std_string.i b/SWIG/Examples/test-suite/li_std_string.i index 354d7a3d9..a34ca10d0 100644 --- a/SWIG/Examples/test-suite/li_std_string.i +++ b/SWIG/Examples/test-suite/li_std_string.i @@ -31,17 +31,17 @@ void test_reference(std::string &x) { } std::string& test_reference_out() { - static std::string x = "x"; + static std::string x = "test_reference_out message"; return x; } void test_throw() throw(std::string){ - static std::string x = "x"; + static std::string x = "test_throw message"; throw x; } void test_const_reference_throw() throw(const std::string &){ - static std::string x = "x"; + static std::string x = "test_const_reference_throw message"; throw x; } @@ -55,4 +55,30 @@ void test_const_pointer_throw() throw(const std::string *) { %} +%apply const std::string& { std::string *GlobalString2, + std::string *MemberString2, + std::string *Structure::StaticMemberString2 }; + +%inline %{ +std::string GlobalString; +std::string GlobalString2 = "global string 2"; + +struct Structure { + std::string MemberString; + std::string MemberString2; + static std::string StaticMemberString; + static std::string StaticMemberString2; + + const std::string ConstMemberString; + static const std::string ConstStaticMemberString; + + Structure() : ConstMemberString("const member string"), MemberString2("member string 2") {} +}; +%} + +%{ + std::string Structure::StaticMemberString = "static member string"; + std::string Structure::StaticMemberString2 = "static member string 2"; + const std::string Structure::ConstStaticMemberString = "const static member string"; +%}