diff options
Diffstat (limited to 'sources/shiboken2/tests/libsample')
-rw-r--r-- | sources/shiboken2/tests/libsample/abstract.h | 1 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/derived.cpp | 6 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/derived.h | 19 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/functions.cpp | 41 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/functions.h | 11 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/multiple_derived.h | 10 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/objecttype.h | 10 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/objecttypelayout.h | 4 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/photon.h | 2 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/samplenamespace.h | 4 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/virtualmethods.cpp | 19 | ||||
-rw-r--r-- | sources/shiboken2/tests/libsample/virtualmethods.h | 18 |
12 files changed, 127 insertions, 18 deletions
diff --git a/sources/shiboken2/tests/libsample/abstract.h b/sources/shiboken2/tests/libsample/abstract.h index 77a43f3d1..f31870522 100644 --- a/sources/shiboken2/tests/libsample/abstract.h +++ b/sources/shiboken2/tests/libsample/abstract.h @@ -102,6 +102,7 @@ protected: unsigned int bitField: 1; private: + virtual void pureVirtualPrivate() = 0; int m_id; }; #endif // ABSTRACT_H diff --git a/sources/shiboken2/tests/libsample/derived.cpp b/sources/shiboken2/tests/libsample/derived.cpp index 00ac8ebe5..9552a2a8c 100644 --- a/sources/shiboken2/tests/libsample/derived.cpp +++ b/sources/shiboken2/tests/libsample/derived.cpp @@ -103,6 +103,8 @@ struct SecretClass : public Abstract { virtual void* pureVirtualReturningVoidPtr() { return 0; } virtual PrintFormat returnAnEnum() { return Short; } void hideFunction(HideType*){}; +private: + virtual void pureVirtualPrivate() {} }; Abstract* Derived::triggerImpossibleTypeDiscovery() @@ -117,3 +119,7 @@ Abstract* Derived::triggerAnotherImpossibleTypeDiscovery() { return new AnotherSecretClass; } + +void Derived::pureVirtualPrivate() +{ +} diff --git a/sources/shiboken2/tests/libsample/derived.h b/sources/shiboken2/tests/libsample/derived.h index 5c57e4691..84c502566 100644 --- a/sources/shiboken2/tests/libsample/derived.h +++ b/sources/shiboken2/tests/libsample/derived.h @@ -53,13 +53,13 @@ public: }; Derived(int id = -1); - virtual ~Derived(); - virtual void pureVirtual(); - virtual void* pureVirtualReturningVoidPtr(); - virtual void unpureVirtual(); + ~Derived() override; + void pureVirtual() override; + void* pureVirtualReturningVoidPtr() override; + void unpureVirtual() override; - virtual PrintFormat returnAnEnum() { return Short; } - virtual Type type() const { return TpDerived; } + PrintFormat returnAnEnum() override { return Short; } + Type type() const override { return TpDerived; } // factory method static Abstract* createObject(); @@ -83,10 +83,13 @@ public: static Abstract* triggerImpossibleTypeDiscovery(); static Abstract* triggerAnotherImpossibleTypeDiscovery(); - void hideFunction(HideType*) {} + void hideFunction(HideType*) override {} protected: const char* getClassName() { return className(); } - virtual const char* className() { return "Derived"; } + virtual const char* className() override { return "Derived"; } + +private: + void pureVirtualPrivate() override; }; #endif // DERIVED_H diff --git a/sources/shiboken2/tests/libsample/functions.cpp b/sources/shiboken2/tests/libsample/functions.cpp index 4a15cdae8..bf73d5ed7 100644 --- a/sources/shiboken2/tests/libsample/functions.cpp +++ b/sources/shiboken2/tests/libsample/functions.cpp @@ -28,7 +28,9 @@ #include "functions.h" #include <string.h> +#include <algorithm> #include <iostream> +#include <numeric> using namespace std; @@ -197,6 +199,45 @@ acceptOddBoolReference(OddBool& x) return x; } +int sumIntArray(int array[4]) +{ + return std::accumulate(array, array + 4, 0); +} + +double sumDoubleArray(double array[4]) +{ + return std::accumulate(array, array + 4, double(0)); +} + +int sumIntMatrix(int m[2][3]) +{ + int result = 0; + for (int r = 0; r < 2; ++r) { + for (int c = 0; c < 3; ++c) + result += m[r][c]; + } + return result; +} + +double sumDoubleMatrix(double m[2][3]) +{ + double result = 0; + for (int r = 0; r < 2; ++r) { + for (int c = 0; c < 3; ++c) + result += m[r][c]; + } + return result; +} + +ArrayModifyTest::ArrayModifyTest() +{ +} + +int ArrayModifyTest::sumIntArray(int n, int *array) +{ + return std::accumulate(array, array + n, 0); +} + ClassWithFunctionPointer::ClassWithFunctionPointer() { callFunctionPointer(0, &ClassWithFunctionPointer::doNothing); diff --git a/sources/shiboken2/tests/libsample/functions.h b/sources/shiboken2/tests/libsample/functions.h index 89a175bc4..a53f97c6e 100644 --- a/sources/shiboken2/tests/libsample/functions.h +++ b/sources/shiboken2/tests/libsample/functions.h @@ -81,6 +81,17 @@ LIBSAMPLE_API double acceptDouble(double x); LIBSAMPLE_API int acceptIntReference(int& x); LIBSAMPLE_API OddBool acceptOddBoolReference(OddBool& x); +LIBSAMPLE_API int sumIntArray(int array[4]); +LIBSAMPLE_API double sumDoubleArray(double array[4]); +LIBSAMPLE_API int sumIntMatrix(int m[2][3]); +LIBSAMPLE_API double sumDoubleMatrix(double m[2][3]); + +class LIBSAMPLE_API ArrayModifyTest +{ +public: + ArrayModifyTest(); + int sumIntArray(int n, int *array); +}; class LIBSAMPLE_API ClassWithFunctionPointer { diff --git a/sources/shiboken2/tests/libsample/multiple_derived.h b/sources/shiboken2/tests/libsample/multiple_derived.h index 5825e59b4..7a130c6b5 100644 --- a/sources/shiboken2/tests/libsample/multiple_derived.h +++ b/sources/shiboken2/tests/libsample/multiple_derived.h @@ -58,11 +58,11 @@ class LIBSAMPLE_API MDerived1 : public Base1, public Base2 { public: MDerived1(); - virtual ~MDerived1() {} + ~MDerived1() override {} - virtual int mderived1Method() { return m_value; } - virtual int base1Method() { return Base1::base1Method() * 10; } - virtual int base2Method() { return Base2::base2Method() * 10; } + int mderived1Method() { return m_value; } + int base1Method () override { return Base1::base1Method() * 10; } + int base2Method() override { return Base2::base2Method() * 10; } inline Base1* castToBase1() { return (Base1*) this; } inline Base2* castToBase2() { return (Base2*) this; } @@ -71,7 +71,7 @@ public: static MDerived1* transformFromBase2(Base2 *self); private: - virtual void publicMethod() {} + void publicMethod() override {} int m_value; }; diff --git a/sources/shiboken2/tests/libsample/objecttype.h b/sources/shiboken2/tests/libsample/objecttype.h index 487472b0f..91fb45515 100644 --- a/sources/shiboken2/tests/libsample/objecttype.h +++ b/sources/shiboken2/tests/libsample/objecttype.h @@ -45,6 +45,12 @@ struct Event SOME_EVENT, ANY_EVENT }; + + enum class EventTypeClass { + Value1, + Value2 + }; + Event(EventType eventType) : m_eventType(eventType) {} EventType eventType() { return m_eventType; } private: @@ -167,8 +173,8 @@ class LIBSAMPLE_API ObjectTypeDerived: public ObjectType, public OtherBase { public: ObjectTypeDerived(): ObjectType(), OtherBase() {}; - virtual bool event(Event* event); - virtual ~ObjectTypeDerived(); + bool event(Event* event) override; + ~ObjectTypeDerived() override; }; #endif // OBJECTTYPE_H diff --git a/sources/shiboken2/tests/libsample/objecttypelayout.h b/sources/shiboken2/tests/libsample/objecttypelayout.h index 3fa8b9dbf..8524c1989 100644 --- a/sources/shiboken2/tests/libsample/objecttypelayout.h +++ b/sources/shiboken2/tests/libsample/objecttypelayout.h @@ -41,10 +41,10 @@ public: void addObject(ObjectType* obj); std::list<ObjectType*> objects() const; - virtual bool isLayoutType() { return true; } + bool isLayoutType() override { return true; } inline static ObjectTypeLayout* create() { return new ObjectTypeLayout(); } - virtual ObjectType* takeChild(const Str& name) { return ObjectType::takeChild(name); } + ObjectType* takeChild(const Str& name) override { return ObjectType::takeChild(name); } private: std::list<ObjectType*> m_objects; diff --git a/sources/shiboken2/tests/libsample/photon.h b/sources/shiboken2/tests/libsample/photon.h index d8b1be423..437ec1d9b 100644 --- a/sources/shiboken2/tests/libsample/photon.h +++ b/sources/shiboken2/tests/libsample/photon.h @@ -84,7 +84,7 @@ public: static inline TemplateBase<CLASS_TYPE>* passPointerThrough(TemplateBase<CLASS_TYPE>* obj) { return obj; } - virtual ClassType type() const { return CLASS_TYPE; } + ClassType type() const override { return CLASS_TYPE; } static const ClassType staticType = CLASS_TYPE; }; diff --git a/sources/shiboken2/tests/libsample/samplenamespace.h b/sources/shiboken2/tests/libsample/samplenamespace.h index 3ce410941..93cafa29c 100644 --- a/sources/shiboken2/tests/libsample/samplenamespace.h +++ b/sources/shiboken2/tests/libsample/samplenamespace.h @@ -110,6 +110,10 @@ public: NiceValue1, NiceValue2 }; + enum class NiceEnumClass { + NiceClassValue1, NiceClassValue2 + }; + inline int someMethod(SomeInnerClass*) { return 0; } virtual OkThisIsRecursiveEnough* someVirtualMethod(OkThisIsRecursiveEnough* arg) { return arg; } }; diff --git a/sources/shiboken2/tests/libsample/virtualmethods.cpp b/sources/shiboken2/tests/libsample/virtualmethods.cpp index 05b854e08..e0cba3a47 100644 --- a/sources/shiboken2/tests/libsample/virtualmethods.cpp +++ b/sources/shiboken2/tests/libsample/virtualmethods.cpp @@ -57,3 +57,22 @@ VirtualMethods::getMargins(int* left, int* top, int* right, int* bottom) const *bottom = m_bottom; } +double VirtualDaughter2::virtualMethod0(Point pt, int val, Complex cpx, bool b) +{ + return 42 + VirtualMethods::virtualMethod0(pt, val, cpx, b); +} + +int VirtualDaughter2::sum0(int a0, int a1, int a2) +{ + return 42 + VirtualMethods::sum0(a0, a1, a2); +} + +double VirtualFinalDaughter::virtualMethod0(Point pt, int val, Complex cpx, bool b) +{ + return 42 + VirtualMethods::virtualMethod0(pt, val, cpx, b); +} + +int VirtualFinalDaughter::sum0(int a0, int a1, int a2) +{ + return 42 + VirtualMethods::sum0(a0, a1, a2); +} diff --git a/sources/shiboken2/tests/libsample/virtualmethods.h b/sources/shiboken2/tests/libsample/virtualmethods.h index 5754d0d5d..4ba3ad338 100644 --- a/sources/shiboken2/tests/libsample/virtualmethods.h +++ b/sources/shiboken2/tests/libsample/virtualmethods.h @@ -121,6 +121,24 @@ public: VirtualDaughter(Str name) : VirtualMethods(name) {} }; +class LIBSAMPLE_API VirtualDaughter2 : public VirtualMethods +{ +public: + VirtualDaughter2() : VirtualMethods("VirtualDaughter2") {} + + double virtualMethod0(Point pt, int val, Complex cpx, bool b) override; + int sum0(int a0, int a1, int a2) final; +}; + +class LIBSAMPLE_API VirtualFinalDaughter final : public VirtualMethods +{ +public: + VirtualFinalDaughter() : VirtualMethods("VirtualFinalDaughter") {} + + double virtualMethod0(Point pt, int val, Complex cpx, bool b) override; + int sum0(int a0, int a1, int a2) override; +}; + class LIBSAMPLE_API VirtualDtor { public: |