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:
parent
092a7d9f09
commit
9040ff7ecb
2 changed files with 70 additions and 0 deletions
58
Examples/test-suite/director_enum.i
Normal file
58
Examples/test-suite/director_enum.i
Normal 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) {}
|
||||
};
|
||||
|
||||
|
||||
%}
|
||||
12
Examples/test-suite/python/director_enum_runme.py
Normal file
12
Examples/test-suite/python/director_enum_runme.py
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue