diff --git a/Examples/test-suite/python/director_profile.i b/Examples/test-suite/python/director_profile.i new file mode 100644 index 000000000..03407d3f4 --- /dev/null +++ b/Examples/test-suite/python/director_profile.i @@ -0,0 +1,54 @@ +%module(directors="1") director_profile + +%feature("director") B; + + +%inline %{ + + class A { + public: + A() {} + }; + + class B + { + A aa; + public: + B() {} + + virtual A fn(const A* a) { + return *a; + } + + virtual int vfi(int a) { + return a + 1; + } + + int fi(int a) { + return vfi(a); + } + + int fj(const A* a) { + return 10; + } + + B* fk(int i) { + return this; + } + + const char* fl(int i) { + return "hello"; + } + + virtual ~B() + { + } + + static B* get_self(B *b) + { + return b; + } + + }; + +%} diff --git a/Examples/test-suite/python/director_profile_runme.py b/Examples/test-suite/python/director_profile_runme.py new file mode 100644 index 000000000..2f67481f5 --- /dev/null +++ b/Examples/test-suite/python/director_profile_runme.py @@ -0,0 +1,41 @@ +import director_profile + +class MyB(director_profile.B): + def vfi(self, a): + return a+3 + + + +a = director_profile.A() +myb = MyB() +b = director_profile.B.get_self(myb) + + +fi = b.fi +i = 50000 +a = 1 +while i: + a = fi(a) #1 + a = fi(a) #2 + a = fi(a) #3 + a = fi(a) #4 + a = fi(a) #5 + a = fi(a) #6 + a = fi(a) #7 + a = fi(a) #8 + a = fi(a) #9 + a = fi(a) #10 + a = fi(a) #1 + a = fi(a) #2 + a = fi(a) #3 + a = fi(a) #4 + a = fi(a) #5 + a = fi(a) #6 + a = fi(a) #7 + a = fi(a) #8 + a = fi(a) #9 + a = fi(a) #20 + i -= 1 + +print a +