add test case using 'super'

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6864 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-12-12 21:40:18 +00:00
commit eef4efb2eb
3 changed files with 64 additions and 0 deletions

View file

@ -109,6 +109,7 @@ CPP_TEST_CASES += \
destructor_reprotected \
director_abstract \
director_basic \
director_constructor \
director_detect \
director_default \
director_enum \

View file

@ -0,0 +1,37 @@
%module(directors="1") director_constructor
%feature("director") Foo;
%inline %{
class Foo
{
public:
int a;
Foo(int i)
{
a=i;
}
virtual ~Foo() { }
int do_test() {
return test();
}
virtual int getit()
{
return a;
}
virtual void doubleit()
{
a = a * 2;
}
virtual int test() = 0;
};
%}

View file

@ -0,0 +1,26 @@
require 'director_constructor'
include Director_constructor
class Test < Foo
def initialize(i)
super(i)
end
def doubleit()
self.a = (self.a * 2)
end
def test
3
end
end
a = Test.new(5) #dies here
raise RuntimeError if a.getit != 5
raise RuntimeError if a.do_test != 3
a.doubleit
raise RuntimeError if a.getit != 10