#!/usr/bin/env ruby # # Put description here # # # # # require 'swig_assert' require 'cpp17_string_view' include Cpp17_string_view # Checking expected use of %typemap(in) std::string_view {} test_value("Fee") # Checking expected result of %typemap(out) std::string_view {} raise RuntimeError unless test_value("Fi") == "Fi" # Verify type-checking for %typemap(in) std::string_view {} 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_view & {} test_const_reference("Fo") # Checking expected result of %typemap(out) const std::string_view& {} raise RuntimeError unless test_const_reference("Fum") == "Fum" # Verify type-checking for %typemap(in) const std::string_view & {} 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_view 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 result = test_reference_out() raise RuntimeError if result.is_a? String # Member Strings myStructure = Structure.new if (myStructure.ConstMemberString != "const member string") raise RuntimeError end if (Structure.ConstStaticMemberString != "const static member string") raise RuntimeError end if (stdstringview_empty() != "") puts "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 if (get_null(c_empty()) != "non-null") raise RuntimeError end if (get_null(stdstringview_empty()) != "non-null") raise RuntimeError end