diff options
Diffstat (limited to 'Examples/test-suite/ruby/li_std_string_runme.rb')
| -rw-r--r-- | Examples/test-suite/ruby/li_std_string_runme.rb | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/Examples/test-suite/ruby/li_std_string_runme.rb b/Examples/test-suite/ruby/li_std_string_runme.rb new file mode 100644 index 0000000..dc85b5d --- /dev/null +++ b/Examples/test-suite/ruby/li_std_string_runme.rb @@ -0,0 +1,144 @@ +#!/usr/bin/env ruby +# +# Put description here +# +# +# +# +# + +require 'swig_assert' + +require 'li_std_string' + +include Li_std_string + +# Checking expected use of %typemap(in) std::string {} +test_value("Fee") + +# Checking expected result of %typemap(out) std::string {} +raise RuntimeError unless test_value("Fi") == "Fi" + +# Verify type-checking for %typemap(in) std::string {} +exceptionRaised = false +begin + test_value(0) +rescue TypeError + exceptionRaised = true +ensure + raise RuntimeError unless exceptionRaised +end + +# Checking expected use of %typemap(in) const std::string & {} +test_const_reference("Fo") + +# Checking expected result of %typemap(out) const std::string& {} +raise RuntimeError unless test_const_reference("Fum") == "Fum" + +# Verify type-checking for %typemap(in) const std::string & {} +exceptionRaised = false +begin + test_const_reference(0) +rescue TypeError + exceptionRaised = true +ensure + raise RuntimeError unless exceptionRaised +end + +# +# Input and output typemaps for pointers and non-const references to +# std::string are *not* supported; the following tests confirm +# that none of these cases are slipping through. +# + +exceptionRaised = false +begin + test_pointer("foo") +rescue TypeError + exceptionRaised = true +ensure + raise RuntimeError unless exceptionRaised +end + +result = test_pointer_out() +raise RuntimeError if result.is_a? String + +exceptionRaised = false +begin + test_const_pointer("bar") +rescue TypeError + exceptionRaised = true +ensure + raise RuntimeError unless exceptionRaised +end + +result = test_const_pointer_out() +raise RuntimeError if result.is_a? String + +exceptionRaised = false +begin + test_reference("foo") +rescue TypeError + exceptionRaised = true +ensure + raise RuntimeError unless exceptionRaised +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 + + +if (test_reference_input("hello") != "hello") + raise RuntimeError +end +s = test_reference_inout("hello") +if (s != "hellohello") + raise RuntimeError +end + + +if (stdstring_empty() != "") + raise RuntimeError +end + +if (c_empty() != "") + raise RuntimeError +end + + +if (c_null() != nil) + raise RuntimeError +end + + +if (get_null(c_null()) != nil) + raise RuntimeError +end + |
