From bb80f1f341a1b0677065feefd2a3b56c811d201d Mon Sep 17 00:00:00 2001 From: Logan Johnson Date: Fri, 19 Sep 2003 22:05:44 +0000 Subject: [PATCH] Added a Ruby runtime test for the new lib_std_pair.i test case. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5127 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- .../test-suite/ruby/lib_std_pair_runme.rb | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 SWIG/Examples/test-suite/ruby/lib_std_pair_runme.rb diff --git a/SWIG/Examples/test-suite/ruby/lib_std_pair_runme.rb b/SWIG/Examples/test-suite/ruby/lib_std_pair_runme.rb new file mode 100755 index 000000000..3a3427577 --- /dev/null +++ b/SWIG/Examples/test-suite/ruby/lib_std_pair_runme.rb @@ -0,0 +1,47 @@ +require 'lib_std_pair' + +include Lib_std_pair + +# +# Because of template specializations for pair, this should return +# an Array of size 2, where both elements are Fixnums. +# +intPair = makeIntPair(7, 6) +raise RuntimeError unless intPair.instance_of?(Array) +raise RuntimeError unless intPair.size == 2 +raise RuntimeError unless (intPair[0] == 7 && intPair[1] == 6) + +# +# Each of these should return a reference to a wrapped +# std::pair object (i.e. an IntPair instance). +# +intPairPtr = makeIntPairPtr(7, 6) +raise RuntimeError unless intPairPtr.instance_of?(IntPair) +raise RuntimeError unless (intPairPtr.first == 7 && intPairPtr.second == 6) + +intPairRef = makeIntPairRef(7, 6) +raise RuntimeError unless intPairRef.instance_of?(IntPair) +raise RuntimeError unless (intPairRef.first == 7 && intPairRef.second == 6) + +intPairConstRef = makeIntPairConstRef(7, 6) +raise RuntimeError unless intPairConstRef.instance_of?(IntPair) +raise RuntimeError unless (intPairConstRef.first == 7 && intPairConstRef.second == 6) + +# +# Now test various input typemaps. Each of the wrapped C++ functions +# (product1, product2 and product3) is expecting an argument of a +# different type (see lib_std_pair.i). Typemaps should be in place to +# convert this Array into the expected argument type. +# +raise RuntimeError unless product1(intPair) == 42 +raise RuntimeError unless product2(intPair) == 42 +raise RuntimeError unless product3(intPair) == 42 + +# +# Similarly, each of the input typemaps should know what to do +# with an IntPair instance. +# +raise RuntimeError unless product1(intPairPtr) == 42 +raise RuntimeError unless product2(intPairPtr) == 42 +raise RuntimeError unless product3(intPairPtr) == 42 +