From d18d84cd3b491d649f5aa2872f2a6d8e8dde033e Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Mon, 21 Nov 2005 20:28:18 +0000 Subject: [PATCH] add director profile test git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7853 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/python/director_profile.i | 54 +++++++++++++++++++ .../python/director_profile_runme.py | 41 ++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 Examples/test-suite/python/director_profile.i create mode 100644 Examples/test-suite/python/director_profile_runme.py 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 +