diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-01-04 05:12:05 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-01-07 22:28:44 +0200 |
commit | d82b8778ed4fa9cf0f2ccacc95807c1bdaa25bda (patch) | |
tree | 617d6f6d123044bdde3bf4029408f976fd4b8291 /test/object-invoke.cpp | |
parent | 300654217eb5bfd5c6aaacc3f90ccec618239f75 (diff) |
test: object-invoke: Test direct invocation
Test the ConnectionTypeDirect type when the object lives in a different
thread. This test passes but generates a memory leak.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'test/object-invoke.cpp')
-rw-r--r-- | test/object-invoke.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp index f9a8bea9..ed16de99 100644 --- a/test/object-invoke.cpp +++ b/test/object-invoke.cpp @@ -123,6 +123,27 @@ protected: return TestFail; } + /* Test that direct method invocation bypasses threads. */ + object_.reset(); + object_.invokeMethod(&InvokedObject::method, + ConnectionTypeDirect, 42); + + switch (object_.status()) { + case InvokedObject::NoCall: + cout << "Method not invoked for custom thread" << endl; + return TestFail; + case InvokedObject::CallReceived: + cout << "Method invoked in incorrect thread for direct call" << endl; + return TestFail; + default: + break; + } + + if (object_.value() != 42) { + cout << "Method invoked with incorrect value for direct call" << endl; + return TestFail; + } + /* * Test invoking a method that takes reference arguments. This * targets compilation, there's no need to check runtime |