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>
This commit is contained in:
Laurent Pinchart 2020-01-04 05:12:05 +02:00
parent 300654217e
commit d82b8778ed

View file

@ -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