diff --git a/SWIG/Examples/test-suite/chicken/li_std_string.i b/SWIG/Examples/test-suite/chicken/li_std_string.i index b7161310b..e0a27ef4e 100644 --- a/SWIG/Examples/test-suite/chicken/li_std_string.i +++ b/SWIG/Examples/test-suite/chicken/li_std_string.i @@ -1,92 +1,7 @@ %module li_std_string -%include "std_string.i" - -%inline %{ - -std::string test_value(std::string x) { - return x; -} - -const std::string& test_const_reference(const std::string &x) { - return x; -} - -void test_pointer(std::string *x) { -} - -std::string *test_pointer_out() { - static std::string x = "x"; - return &x; -} - -void test_const_pointer(const std::string *x) { -} - -const std::string *test_const_pointer_out() { - static std::string x = "x"; - return &x; -} - -void test_reference(std::string &x) { -} - -std::string& test_reference_out() { - static std::string x = "test_reference_out message"; - return x; -} - -#if defined(_MSC_VER) - #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - -void test_throw() throw(std::string){ - static std::string x = "test_throw message"; - throw x; -} - -void test_const_reference_throw() throw(const std::string &){ - static std::string x = "test_const_reference_throw message"; - throw x; -} - -void test_pointer_throw() throw(std::string *) { - throw new std::string("foo"); -} - -void test_const_pointer_throw() throw(const std::string *) { - throw new std::string("foo"); -} - -#if defined(_MSC_VER) - #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - -%} %naturalvar GlobalString2; %naturalvar Structure::MemberString2; %naturalvar 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() : MemberString2("member string 2"), ConstMemberString("const member string") {} -}; -%} - -%{ - std::string Structure::StaticMemberString = "static member string"; - std::string Structure::StaticMemberString2 = "static member string 2"; - const std::string Structure::ConstStaticMemberString = "const static member string"; -%} - +%include ../li_std_string.i diff --git a/SWIG/Examples/test-suite/python/li_std_string.i b/SWIG/Examples/test-suite/python/li_std_string.i index 9a766a644..822d713c4 100644 --- a/SWIG/Examples/test-suite/python/li_std_string.i +++ b/SWIG/Examples/test-suite/python/li_std_string.i @@ -1,6 +1,6 @@ %module li_std_string -%naturalvar; +%naturalvar A; %include @@ -36,54 +36,6 @@ const char* test_ccvalue(const char* x) { char* test_cvalue(char* x) { return x; } - - -std::string test_value(std::string x) { - return x; -} - -const std::string& test_const_reference(const std::string &x) { - return x; -} - -void test_pointer(std::string *x) { -} - -std::string *test_pointer_out() { - static std::string x = "x"; - return &x; -} - -void test_const_pointer(const std::string *x) { -} - -const std::string *test_const_pointer_out() { - static std::string x = "x"; - return &x; -} - -void test_reference(std::string &x) { -} - -std::string& test_reference_out() { - static std::string x = "x"; - return x; -} - -#if defined(_MSC_VER) - #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - -void test_throw() throw(std::string){ - static std::string x = "x"; - - throw x; -} - -#if defined(_MSC_VER) - #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) -#endif - std::basic_string test_value_basic1(std::basic_string x) { return x; @@ -99,34 +51,5 @@ std::basic_string,std::allocator > test_value_ %} -/* Old way, now std::string is a %naturalvar by default -%apply const std::string& { std::string *GlobalString2, - std::string *MemberString2, - std::string *Structure::StaticMemberString2 }; -*/ - -%inline %{ -std::string GlobalString; -std::string GlobalString2 = "global string 2"; -const std::string ConstGlobalString = "const global string"; - -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() : MemberString2("member string 2"), ConstMemberString("const member string") {} -}; -%} - -%{ - std::string Structure::StaticMemberString = "static member string"; - std::string Structure::StaticMemberString2 = "static member string 2"; - const std::string Structure::ConstStaticMemberString = "const static member string"; -%} - +%include ../li_std_string.i diff --git a/SWIG/Examples/test-suite/ruby/li_std_string_runme.rb b/SWIG/Examples/test-suite/ruby/li_std_string_runme.rb index 706af01b9..4f853d1ea 100644 --- a/SWIG/Examples/test-suite/ruby/li_std_string_runme.rb +++ b/SWIG/Examples/test-suite/ruby/li_std_string_runme.rb @@ -76,3 +76,29 @@ end result = test_reference_out() raise RuntimeError if result.is_a? String + +# Member Strings +myStructure = Structure.new +if (myStructure.MemberString2 != "member string 2") + raise RuntimeError +end +s = "Hello" +myStructure.MemberString2 = s +if (myStructure.MemberString2 != s) + raise RuntimeError +end +if (myStructure.ConstMemberString != "const member string") + raise RuntimeError +end + + +if (Structure.StaticMemberString2 != "static member string 2") + raise RuntimeError +end +Structure.StaticMemberString2 = s +if (Structure.StaticMemberString2 != s) + raise RuntimeError +end +if (Structure.ConstStaticMemberString != "const static member string") + raise RuntimeError +end diff --git a/SWIG/Examples/test-suite/tcl/li_std_string_runme.tcl b/SWIG/Examples/test-suite/tcl/li_std_string_runme.tcl new file mode 100644 index 000000000..333c1f1be --- /dev/null +++ b/SWIG/Examples/test-suite/tcl/li_std_string_runme.tcl @@ -0,0 +1,21 @@ + +if [ catch { load ./li_std_string[info sharedlibextension] li_std_string} err_msg ] { + puts stderr "Could not load shared object:\n$err_msg" +} + + +Structure s +if {"[s cget -MemberString2]" != "member string 2"} { error "bad string map"} +s configure -MemberString2 "hello" +if {"[s cget -MemberString2]" != "hello"} { error "bad string map"} + +if {"[s cget -ConstMemberString]" != "const member string"} { error "bad string map"} + +if {"$GlobalString2" != "global string 2"} { error "bad string map"} +if {"$Structure_StaticMemberString2" != "static member string 2"} { error "bad string map"} + +set GlobalString2 "hello" +if {"$GlobalString2" != "hello"} { error "bad string map"} + +set Structure_StaticMemberString2 "hello" +if {"$Structure_StaticMemberString2" != "hello"} { error "bad string map"}