#!/usr/bin/env ruby # # Put description here # # # # # require 'swig_assert' require 'abstract_signature' include Abstract_signature # # Shouldn't be able to instantiate Abstract_foo, because it declares # a pure virtual function. # exceptionRaised = false begin foo = Abstract_foo.new begin foo.meth(1) rescue RuntimeError # here we are using directors exceptionRaised = true end rescue NameError exceptionRaised = true rescue TypeError # In Ruby 1.8 the exception raised is: # TypeError: allocator undefined for Abstract_signature::Abstract_foo exceptionRaised = true ensure swig_assert( "exceptionRaised", binding) end # # Shouldn't be able to instantiate an Abstract_bar either, because it doesn't # implement the pure virtual function with the correct signature. # exceptionRaised = false begin bar = Abstract_bar.new begin bar.meth(1) rescue RuntimeError # here we are using directors exceptionRaised = true end rescue NameError exceptionRaised = true rescue TypeError # In Ruby 1.8 the exception raised is: # TypeError: allocator undefined for Abstract_signature::Abstract_bar exceptionRaised = true ensure swig_assert( "exceptionRaised", binding) end