diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-22 13:33:54 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-23 11:48:03 -0300 |
commit | 8f76c2ace7d74c6382b398126f1dcd8cda617d29 (patch) | |
tree | 490ad3f97380d9ec4dff967747076a8cf2078d35 /tests/libsample/virtualmethods.h | |
parent | c48f9163b42c20c91c33183a1835e0b356f104dc (diff) | |
download | shiboken-8f76c2ace7d74c6382b398126f1dcd8cda617d29.tar.gz shiboken-8f76c2ace7d74c6382b398126f1dcd8cda617d29.tar.xz shiboken-8f76c2ace7d74c6382b398126f1dcd8cda617d29.zip |
Added a great deal of tests to virtual method modification cases.
Diffstat (limited to 'tests/libsample/virtualmethods.h')
-rw-r--r-- | tests/libsample/virtualmethods.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/libsample/virtualmethods.h b/tests/libsample/virtualmethods.h index 299cf5a8..8bd4b93f 100644 --- a/tests/libsample/virtualmethods.h +++ b/tests/libsample/virtualmethods.h @@ -37,6 +37,7 @@ #include "point.h" #include "complex.h" +#include "str.h" class VirtualMethods { @@ -49,6 +50,38 @@ public: { return virtualMethod0(pt, val, cpx, b); } + + // Binding modification: rename. + virtual int sum0(int a0, int a1, int a2) { return a0 + a1 + a2; } + int callSum0(int a0, int a1, int a2) { return sum0(a0, a1, a2); } + + // Binding modification: set default value for the last argument. + virtual int sum1(int a0, int a1, int a2) { return a0 + a1 + a2; } + int callSum1(int a0, int a1, int a2) { return sum1(a0, a1, a2); } + + // Binding modification: remove the last argument and set a default value for it. + virtual int sum2(int a0, int a1, int a2) { return a0 + a1 + a2; } + int callSum2(int a0, int a1, int a2) { return sum2(a0, a1, a2); } + + // Binding modification: remove the second argument. + virtual int sum3(int a0, int a1, int a2) { return a0 + a1 + a2; } + int callSum3(int a0, int a1, int a2) { return sum3(a0, a1, a2); } + + // Binding modification: remove the second argument and set its default + // value, then inject code on the binding reimplementation of the virtual + // (with a native inject-code) to sum the value of the removed + // argument to the first argument before the method is called. + virtual int sum4(int a0, int a1, int a2) { return a0 + a1 + a2; } + int callSum4(int a0, int a1, int a2) { return sum4(a0, a1, a2); } + + // Binding modification: prepend a string to the results of a Python override. + virtual Str name() { return Str("VirtualMethods"); } + Str callName() { return name(); } + + // Binding modification: code injection that calls the Python override by itself. + virtual void callMe() {} + void callCallMe() { callMe(); } + }; #endif // VIRTUALMETHODS_H |