diff options
Diffstat (limited to 'Examples/test-suite/ruby/abstract_inherit_ok_runme.rb')
| -rw-r--r-- | Examples/test-suite/ruby/abstract_inherit_ok_runme.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Examples/test-suite/ruby/abstract_inherit_ok_runme.rb b/Examples/test-suite/ruby/abstract_inherit_ok_runme.rb new file mode 100644 index 0000000..1d68993 --- /dev/null +++ b/Examples/test-suite/ruby/abstract_inherit_ok_runme.rb @@ -0,0 +1,48 @@ +#!/usr/bin/env ruby +# +# Put description here +# +# +# +# +# + +require 'swig_assert' + +require 'abstract_inherit_ok' + +include Abstract_inherit_ok + +# +# Shouldn't be able to instantiate Foo, because it declares +# a pure virtual function. +# + +exceptionRaised = false +begin + Foo.new +rescue NameError + exceptionRaised = true +rescue TypeError + # In Ruby 1.8 the exception raised is: + # TypeError: allocator undefined for Abstract_inherit_ok::Foo + exceptionRaised = true +ensure + swig_assert( "exceptionRaised", binding ) +end + +# +# This one's OK since we cleared it with a %feature("notabstract") +# declaration in the interface file. +# + +exceptionRaised = false +begin + spam = Spam.new + raise RuntimeError unless spam.blah == 0 +rescue NameError + exceptionRaised = true +ensure + swig_assert( "!exceptionRaised", binding ) +end + |
