summaryrefslogtreecommitdiff
path: root/test/util
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-10-28 17:12:58 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-05 11:45:38 +0200
commit31421f8448d0192d04b95e31a0aecde2675b5988 (patch)
tree6fa71a14f10728e49997d8581e00929bce59c414 /test/util
parentd8b1b2bacf0dd9812d62077a825067441037791b (diff)
downloadqtlocation-mapboxgl-31421f8448d0192d04b95e31a0aecde2675b5988.tar.gz
[core] Add Scheduler::scheduleAndReplyValue() API
Diffstat (limited to 'test/util')
-rw-r--r--test/util/async_task.test.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/util/async_task.test.cpp b/test/util/async_task.test.cpp
index 682926a17d..214e490fd8 100644
--- a/test/util/async_task.test.cpp
+++ b/test/util/async_task.test.cpp
@@ -151,3 +151,22 @@ TEST(AsyncTask, ThreadSafety) {
// a valid result, although very unlikely (I hope).
EXPECT_GT(count, 0u);
}
+
+TEST(AsyncTask, scheduleAndReplyValue) {
+ RunLoop loop;
+ std::thread::id caller_id = std::this_thread::get_id();
+
+ auto runInBackground = [caller_id]() -> int {
+ EXPECT_NE(caller_id, std::this_thread::get_id());
+ return 42;
+ };
+ auto onResult = [caller_id, &loop](int res) {
+ EXPECT_EQ(caller_id, std::this_thread::get_id());
+ EXPECT_EQ(42, res);
+ loop.stop();
+ };
+
+ auto sheduler = Scheduler::GetBackground();
+ sheduler->scheduleAndReplyValue(runInBackground, onResult);
+ loop.run();
+} \ No newline at end of file