aboutsummaryrefslogtreecommitdiffstats
path: root/tests/libsample
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libsample')
-rw-r--r--tests/libsample/modifications.cpp14
-rw-r--r--tests/libsample/modifications.h4
2 files changed, 18 insertions, 0 deletions
diff --git a/tests/libsample/modifications.cpp b/tests/libsample/modifications.cpp
index d809e823e..95880d229 100644
--- a/tests/libsample/modifications.cpp
+++ b/tests/libsample/modifications.cpp
@@ -122,6 +122,20 @@ Modifications::sumPointCoordinates(const Point* point)
return point->x() + point->y();
}
+double
+Modifications::differenceOfPointCoordinates(const Point* pt, bool* ok)
+{
+ if (!pt) {
+ *ok = false;
+ return 0.0;
+ }
+ *ok = true;
+ double result = pt->x() - pt->y();
+ if (result < 0)
+ result = result * -1.0;
+ return result;
+}
+
bool
Modifications::nonConversionRuleForArgumentWithDefaultValue(ObjectType** object)
{
diff --git a/tests/libsample/modifications.h b/tests/libsample/modifications.h
index f17261473..7d5c9123f 100644
--- a/tests/libsample/modifications.h
+++ b/tests/libsample/modifications.h
@@ -106,6 +106,10 @@ public:
// the test implementation must expect point never to be null.
int sumPointCoordinates(const Point* point);
+ // Modify the return value of a virtual method.
+ virtual double differenceOfPointCoordinates(const Point* pt, bool* ok);
+ double callDifferenceOfPointCoordinates(const Point* pt, bool* ok) { return differenceOfPointCoordinates(pt, ok); }
+
// Sets an ObjectType in the argument and returns true.
bool nonConversionRuleForArgumentWithDefaultValue(ObjectType** object = 0);
ObjectType* getObject() const { return m_object; }