add tests for director+enums

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6376 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-10-08 09:15:38 +00:00
commit 9040ff7ecb
2 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,58 @@
%module(directors="1") director_enum
%feature("director") Foo;
%inline %{
class A;
enum Hello {
hi, hello
};
class Foo {
public:
virtual ~Foo() {}
virtual Hello say_hi(Hello h){ return h;}
virtual Hello say_hello(Hello){ return hello;}
virtual Hello say_hi(A *a){ return hi;}
};
%}
%inline %{
enum FType{ SA = -1, NA=0, EA=1};
struct A{
A(const double a = 0.0, const double b = 1.0, const FType c=NA)
{}
virtual ~A() {}
virtual int f(int i=0) {return i;}
};
struct B : public A{
B(const double a = 0.0, const double b = 1.0, const FType c=NA)
: A(a, b, c)
{}
};
%}
%inline %{
struct A2{
A2(const FType c=NA) {}
virtual ~A2() {}
virtual int f(int i=0) {return i;}
};
struct B2 : public A2{
B2(const FType c=NA) : A2(c) {}
};
%}

View file

@ -0,0 +1,12 @@
import director_enum
class MyFoo(director_enum.Foo):
def say_hi(self, val):
return val
b = director_enum.Foo()
a = MyFoo()
if a.say_hi(director_enum.hello) != b.say_hello(director_enum.hi):
raise RuntimeError