summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <tmpsantos@gmail.com>2019-02-14 16:56:17 +0200
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2019-05-10 14:20:38 +0300
commit06f1dc48a2fb317979ab48ce323115be5bd48f16 (patch)
tree5ef1e78a1f98a7a26034ca519e267bda235b2817 /test
parent947bc75f56fae7f1e70f21b98730dc6b460b9194 (diff)
downloadqtlocation-mapboxgl-06f1dc48a2fb317979ab48ce323115be5bd48f16.tar.gz
[core] Make the BackgroundScheduler a singleton
- Do not carry it over everywhere as parameter, it is a shared instance anyway and the lifecycle is pretty much the app lifecycle from the moment we instantiate a map. - Rename to BackgroundScheduler because it is a Scheduler that will do tasks in the background, we don't make assumptions if it is a thread pool or a single thread. - Most importantly, remove the dependency from `core` on `platform`.
Diffstat (limited to 'test')
-rw-r--r--test/actor/actor.test.cpp85
-rw-r--r--test/actor/actor_ref.test.cpp14
-rw-r--r--test/api/annotations.test.cpp6
-rw-r--r--test/api/api_misuse.test.cpp6
-rw-r--r--test/api/custom_geometry_source.test.cpp6
-rw-r--r--test/api/custom_layer.test.cpp6
-rw-r--r--test/api/query.test.cpp6
-rw-r--r--test/api/recycle_map.cpp7
-rw-r--r--test/gl/context.test.cpp7
-rw-r--r--test/map/map.test.cpp15
-rw-r--r--test/map/prefetch.test.cpp6
-rw-r--r--test/renderer/image_manager.test.cpp1
-rw-r--r--test/sprite/sprite_loader.test.cpp4
-rw-r--r--test/src/mbgl/test/map_adapter.hpp3
-rw-r--r--test/src/mbgl/test/test.cpp1
-rw-r--r--test/style/source.test.cpp6
-rw-r--r--test/style/style.test.cpp10
-rw-r--r--test/style/style_layer.test.cpp4
-rw-r--r--test/text/local_glyph_rasterizer.test.cpp6
-rw-r--r--test/tile/custom_geometry_tile.test.cpp5
-rw-r--r--test/tile/geojson_tile.test.cpp5
-rw-r--r--test/tile/raster_dem_tile.test.cpp5
-rw-r--r--test/tile/raster_tile.test.cpp5
-rw-r--r--test/tile/vector_tile.test.cpp5
-rw-r--r--test/util/async_task.test.cpp19
-rw-r--r--test/util/memory.test.cpp14
-rw-r--r--test/util/thread.test.cpp11
27 files changed, 98 insertions, 170 deletions
diff --git a/test/actor/actor.test.cpp b/test/actor/actor.test.cpp
index 02308b7ce0..6db95a83f1 100644
--- a/test/actor/actor.test.cpp
+++ b/test/actor/actor.test.cpp
@@ -1,8 +1,8 @@
#include <mbgl/actor/actor.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
-#include <mbgl/util/run_loop.hpp>
+#include <mbgl/actor/scheduler.hpp>
#include <mbgl/test/util.hpp>
+#include <mbgl/util/run_loop.hpp>
#include <chrono>
#include <functional>
@@ -20,9 +20,8 @@ TEST(Actor, Construction) {
};
};
- ThreadPool pool { 1 };
bool constructed = false;
- Actor<Test> test(pool, std::ref(constructed));
+ Actor<Test> test(Scheduler::GetBackground(), std::ref(constructed));
EXPECT_TRUE(constructed);
}
@@ -33,14 +32,13 @@ TEST(Actor, Destruction) {
~Test() {
destructed = true;
}
-
+
bool& destructed;
};
- ThreadPool pool { 1 };
bool destructed = false;
{
- Actor<Test> test(pool, std::ref(destructed));
+ Actor<Test> test(Scheduler::GetBackground(), std::ref(destructed));
}
EXPECT_TRUE(destructed);
@@ -72,15 +70,13 @@ TEST(Actor, DestructionBlocksOnReceive) {
}
};
- ThreadPool pool { 1 };
-
std::promise<void> enteredPromise;
std::future<void> enteredFuture = enteredPromise.get_future();
std::promise<void> exitingPromise;
std::future<void> exitingFuture = exitingPromise.get_future();
- Actor<Test> test(pool, std::move(enteredPromise), std::move(exitingFuture));
+ Actor<Test> test(Scheduler::GetBackground(), std::move(enteredPromise), std::move(exitingFuture));
test.self().invoke(&Test::wait);
enteredFuture.wait();
@@ -157,11 +153,9 @@ TEST(Actor, DestructionAllowedInReceiveOnSameThread) {
}
};
- ThreadPool pool { 1 };
-
std::promise<void> callbackFiredPromise;
-
- auto test = std::make_unique<Actor<Test>>(pool);
+ auto retainer = Scheduler::GetBackground();
+ auto test = std::make_unique<Actor<Test>>(retainer);
// Callback (triggered while mutex is locked in Mailbox::receive())
test->self().invoke(&Test::callMeBack, [&]() {
@@ -189,12 +183,10 @@ TEST(Actor, SelfDestructionDoesntCrashWaitingReceivingThreads) {
};
- ThreadPool pool { 2 };
-
std::promise<void> actorClosedPromise;
- auto closingActor = std::make_unique<Actor<Test>>(pool);
- auto waitingActor = std::make_unique<Actor<Test>>(pool);
+ auto closingActor = std::make_unique<Actor<Test>>(Scheduler::GetBackground());
+ auto waitingActor = std::make_unique<Actor<Test>>(Scheduler::GetBackground());
std::atomic<bool> waitingMessageProcessed {false};
@@ -251,11 +243,9 @@ TEST(Actor, OrderedMailbox) {
}
};
- ThreadPool pool { 1 };
-
std::promise<void> endedPromise;
std::future<void> endedFuture = endedPromise.get_future();
- Actor<Test> test(pool, std::move(endedPromise));
+ Actor<Test> test(Scheduler::GetBackground(), std::move(endedPromise));
for (auto i = 1; i <= 10; ++i) {
test.self().invoke(&Test::receive, i);
@@ -287,11 +277,9 @@ TEST(Actor, NonConcurrentMailbox) {
}
};
- ThreadPool pool { 10 };
-
std::promise<void> endedPromise;
std::future<void> endedFuture = endedPromise.get_future();
- Actor<Test> test(pool, std::move(endedPromise));
+ Actor<Test> test(Scheduler::GetBackground(), std::move(endedPromise));
for (auto i = 1; i <= 10; ++i) {
test.self().invoke(&Test::receive, i);
@@ -313,13 +301,12 @@ TEST(Actor, Ask) {
}
};
- ThreadPool pool { 2 };
- Actor<Test> test(pool);
+ Actor<Test> test(Scheduler::GetBackground());
auto result = test.self().ask(&Test::doubleIt, 1);
ASSERT_TRUE(result.valid());
-
+
auto status = result.wait_for(std::chrono::seconds(1));
ASSERT_EQ(std::future_status::ready, status);
ASSERT_EQ(2, result.get());
@@ -339,9 +326,8 @@ TEST(Actor, AskVoid) {
}
};
- ThreadPool pool { 1 };
bool executed = false;
- Actor<Test> actor(pool, executed);
+ Actor<Test> actor(Scheduler::GetBackground(), executed);
actor.self().ask(&Test::doIt).get();
EXPECT_TRUE(executed);
@@ -349,31 +335,30 @@ TEST(Actor, AskVoid) {
TEST(Actor, NoSelfActorRef) {
// Not all actors need a reference to self
-
+
// Trivially constructable
struct Trivial {};
-
- ThreadPool pool { 2 };
- Actor<Trivial> trivial(pool);
-
-
+
+ Actor<Trivial> trivial(Scheduler::GetBackground());
+
+
// With arguments
struct WithArguments {
std::promise<void> promise;
-
+
WithArguments(std::promise<void> promise_)
: promise(std::move(promise_)) {
}
-
+
void receive() {
promise.set_value();
}
};
-
+
std::promise<void> promise;
auto future = promise.get_future();
- Actor<WithArguments> withArguments(pool, std::move(promise));
-
+ Actor<WithArguments> withArguments(Scheduler::GetBackground(), std::move(promise));
+
withArguments.self().invoke(&WithArguments::receive);
future.wait();
}
@@ -386,32 +371,32 @@ TEST(Actor, TwoPhaseConstruction) {
struct Test {
Test(ActorRef<Test>, std::shared_ptr<bool> destroyed_)
: destroyed(std::move(destroyed_)) {};
-
+
~Test() {
*destroyed = true;
}
-
+
void callMe(std::promise<void> p) {
p.set_value();
}
-
+
void stop() {
util::RunLoop::Get()->stop();
}
-
+
std::shared_ptr<bool> destroyed;
};
AspiringActor<Test> parent;
-
+
auto destroyed = std::make_shared<bool>(false);
-
+
std::promise<void> queueExecuted;
auto queueExecutedFuture = queueExecuted.get_future();
-
+
parent.self().invoke(&Test::callMe, std::move(queueExecuted));
parent.self().invoke(&Test::stop);
-
+
auto thread = std::thread([
capturedArgs = std::make_tuple(destroyed),
&parent
@@ -420,11 +405,11 @@ TEST(Actor, TwoPhaseConstruction) {
EstablishedActor<Test> test(loop, parent, capturedArgs);
loop.run();
});
-
+
// should not hang
queueExecutedFuture.get();
thread.join();
-
+
EXPECT_TRUE(*destroyed);
}
diff --git a/test/actor/actor_ref.test.cpp b/test/actor/actor_ref.test.cpp
index 20aa1c35c1..221a220ed9 100644
--- a/test/actor/actor_ref.test.cpp
+++ b/test/actor/actor_ref.test.cpp
@@ -1,6 +1,6 @@
#include <mbgl/actor/actor.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
+#include <mbgl/actor/scheduler.hpp>
#include <mbgl/test/util.hpp>
#include <future>
@@ -27,11 +27,10 @@ TEST(ActorRef, CanOutliveActor) {
}
};
- ThreadPool pool { 1 };
bool died = false;
ActorRef<Test> test = [&] () {
- return Actor<Test>(pool, std::ref(died)).self();
+ return Actor<Test>(Scheduler::GetBackground(), std::ref(died)).self();
}();
EXPECT_TRUE(died);
@@ -54,8 +53,7 @@ TEST(ActorRef, Ask) {
}
};
- ThreadPool pool { 1 };
- Actor<Test> actor(pool);
+ Actor<Test> actor(Scheduler::GetBackground());
ActorRef<Test> ref = actor.self();
EXPECT_EQ(20, ref.ask(&Test::gimme).get());
@@ -76,9 +74,8 @@ TEST(ActorRef, AskVoid) {
}
};
- ThreadPool pool { 1 };
bool executed = false;
- Actor<Test> actor(pool, executed);
+ Actor<Test> actor(Scheduler::GetBackground(), executed);
ActorRef<Test> ref = actor.self();
ref.ask(&Test::doIt).get();
@@ -104,8 +101,7 @@ TEST(ActorRef, AskOnDestroyedActor) {
};
bool died = false;
- ThreadPool pool { 1 };
- auto actor = std::make_unique<Actor<Test>>(pool, died);
+ auto actor = std::make_unique<Actor<Test>>(Scheduler::GetBackground(), died);
ActorRef<Test> ref = actor->self();
actor.reset();
diff --git a/test/api/annotations.test.cpp b/test/api/annotations.test.cpp
index 11920d1624..2d76a3d154 100644
--- a/test/api/annotations.test.cpp
+++ b/test/api/annotations.test.cpp
@@ -2,7 +2,6 @@
#include <mbgl/test/stub_file_source.hpp>
#include <mbgl/test/map_adapter.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/annotation/annotation.hpp>
#include <mbgl/style/style.hpp>
#include <mbgl/style/image.hpp>
@@ -28,10 +27,9 @@ std::unique_ptr<style::Image> namedMarker(const std::string& name) {
class AnnotationTest {
public:
util::RunLoop loop;
- ThreadPool threadPool { 4 };
- HeadlessFrontend frontend { 1, threadPool };
+ HeadlessFrontend frontend { 1 };
- MapAdapter map { frontend, MapObserver::nullObserver(), std::make_shared<StubFileSource>(), threadPool,
+ MapAdapter map { frontend, MapObserver::nullObserver(), std::make_shared<StubFileSource>(),
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())};
void checkRendering(const char * name) {
diff --git a/test/api/api_misuse.test.cpp b/test/api/api_misuse.test.cpp
index b65bdf9918..54d8eb5912 100644
--- a/test/api/api_misuse.test.cpp
+++ b/test/api/api_misuse.test.cpp
@@ -6,7 +6,6 @@
#include <mbgl/map/map_options.hpp>
#include <mbgl/gfx/backend_scope.hpp>
#include <mbgl/gl/headless_frontend.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/exception.hpp>
#include <mbgl/util/run_loop.hpp>
@@ -21,11 +20,10 @@ TEST(API, RenderWithoutCallback) {
util::RunLoop loop;
- ThreadPool threadPool(4);
- HeadlessFrontend frontend { 1, threadPool };
+ HeadlessFrontend frontend { 1 };
auto map = std::make_unique<MapAdapter>(frontend, MapObserver::nullObserver(),
- std::make_shared<StubFileSource>(), threadPool,
+ std::make_shared<StubFileSource>(),
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()));
map->renderStill(nullptr);
diff --git a/test/api/custom_geometry_source.test.cpp b/test/api/custom_geometry_source.test.cpp
index f796e3086b..df65dc2703 100644
--- a/test/api/custom_geometry_source.test.cpp
+++ b/test/api/custom_geometry_source.test.cpp
@@ -2,7 +2,6 @@
#include <mbgl/map/map.hpp>
#include <mbgl/map/map_options.hpp>
-#include <mbgl/util/shared_thread_pool.hpp>
#include <mbgl/gl/headless_frontend.hpp>
#include <mbgl/storage/resource_options.hpp>
#include <mbgl/style/style.hpp>
@@ -20,9 +19,8 @@ using namespace mbgl::style;
TEST(CustomGeometrySource, Grid) {
util::RunLoop loop;
- auto threadPool = sharedThreadPool();
- HeadlessFrontend frontend { 1, *threadPool };
- Map map(frontend, MapObserver::nullObserver(), *threadPool,
+ HeadlessFrontend frontend { 1 };
+ Map map(frontend, MapObserver::nullObserver(),
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()),
ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets"));
map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json"));
diff --git a/test/api/custom_layer.test.cpp b/test/api/custom_layer.test.cpp
index 4a0a34bafc..e9b9aee9bc 100644
--- a/test/api/custom_layer.test.cpp
+++ b/test/api/custom_layer.test.cpp
@@ -3,7 +3,6 @@
#include <mbgl/platform/gl_functions.hpp>
#include <mbgl/map/map.hpp>
#include <mbgl/map/map_options.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/gl/defines.hpp>
#include <mbgl/gl/headless_frontend.hpp>
#include <mbgl/storage/resource_options.hpp>
@@ -90,9 +89,8 @@ public:
TEST(CustomLayer, Basic) {
util::RunLoop loop;
- ThreadPool threadPool(4);
- HeadlessFrontend frontend { 1, threadPool };
- Map map(frontend, MapObserver::nullObserver(), threadPool,
+ HeadlessFrontend frontend { 1 };
+ Map map(frontend, MapObserver::nullObserver(),
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()),
ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets"));
map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json"));
diff --git a/test/api/query.test.cpp b/test/api/query.test.cpp
index ddf5df6aab..b80d3b7d8a 100644
--- a/test/api/query.test.cpp
+++ b/test/api/query.test.cpp
@@ -1,7 +1,6 @@
#include <mbgl/test/map_adapter.hpp>
#include <mbgl/map/map_options.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/test/stub_file_source.hpp>
#include <mbgl/test/util.hpp>
#include <mbgl/util/image.hpp>
@@ -35,9 +34,8 @@ public:
util::RunLoop loop;
std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>();
- ThreadPool threadPool { 4 };
- HeadlessFrontend frontend { 1, threadPool };
- MapAdapter map { frontend, MapObserver::nullObserver(), fileSource, threadPool,
+ HeadlessFrontend frontend { 1 };
+ MapAdapter map { frontend, MapObserver::nullObserver(), fileSource,
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())};
};
diff --git a/test/api/recycle_map.cpp b/test/api/recycle_map.cpp
index 18cc9c00aa..55e19e3cd9 100644
--- a/test/api/recycle_map.cpp
+++ b/test/api/recycle_map.cpp
@@ -9,7 +9,6 @@
#include <mbgl/style/sources/geojson_source.hpp>
#include <mbgl/style/image.hpp>
#include <mbgl/style/style.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/exception.hpp>
#include <mbgl/util/geometry.hpp>
#include <mbgl/util/geojson.hpp>
@@ -23,11 +22,9 @@ using namespace mbgl::style;
TEST(API, RecycleMapUpdateImages) {
util::RunLoop loop;
- ThreadPool threadPool(4);
-
- HeadlessFrontend frontend { 1, threadPool };
+ HeadlessFrontend frontend { 1 };
auto map = std::make_unique<MapAdapter>(frontend, MapObserver::nullObserver(),
- std::make_shared<StubFileSource>(), threadPool,
+ std::make_shared<StubFileSource>(),
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()));
EXPECT_TRUE(map);
diff --git a/test/gl/context.test.cpp b/test/gl/context.test.cpp
index b8fe895c44..756f2c58d4 100644
--- a/test/gl/context.test.cpp
+++ b/test/gl/context.test.cpp
@@ -4,7 +4,6 @@
#include <mbgl/gl/context.hpp>
#include <mbgl/map/map.hpp>
#include <mbgl/map/map_options.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/gfx/backend_scope.hpp>
#include <mbgl/gl/defines.hpp>
#include <mbgl/gl/headless_frontend.hpp>
@@ -88,11 +87,9 @@ struct Buffer {
TEST(GLContextMode, Shared) {
util::RunLoop loop;
- ThreadPool threadPool(4);
+ HeadlessFrontend frontend { 1, {}, gfx::ContextMode::Shared };
- HeadlessFrontend frontend { 1, threadPool, {}, gfx::ContextMode::Shared };
-
- Map map(frontend, MapObserver::nullObserver(), threadPool,
+ Map map(frontend, MapObserver::nullObserver(),
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()),
ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets"));
map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json"));
diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp
index 3af2acdb8b..ee86ce7f77 100644
--- a/test/map/map.test.cpp
+++ b/test/map/map.test.cpp
@@ -9,7 +9,6 @@
#include <mbgl/gfx/backend_scope.hpp>
#include <mbgl/gl/context.hpp>
#include <mbgl/gl/headless_frontend.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/storage/resource_options.hpp>
#include <mbgl/storage/network_status.hpp>
#include <mbgl/storage/default_file_source.hpp>
@@ -34,15 +33,14 @@ class MapTest {
public:
util::RunLoop runLoop;
std::shared_ptr<FileSource> fileSource;
- ThreadPool threadPool { 4 };
StubMapObserver observer;
HeadlessFrontend frontend;
MapAdapter map;
MapTest(float pixelRatio = 1, MapMode mode = MapMode::Static)
: fileSource(std::make_shared<FileSource>())
- , frontend(pixelRatio, threadPool)
- , map(frontend, observer, fileSource, threadPool,
+ , frontend(pixelRatio)
+ , map(frontend, observer, fileSource,
MapOptions().withMapMode(mode).withSize(frontend.getSize()).withPixelRatio(pixelRatio)) {}
template <typename T = FileSource>
@@ -50,8 +48,8 @@ public:
float pixelRatio = 1, MapMode mode = MapMode::Static,
typename std::enable_if<std::is_same<T, DefaultFileSource>::value>::type* = nullptr)
: fileSource(std::make_shared<T>(cachePath, assetPath))
- , frontend(pixelRatio, threadPool)
- , map(frontend, observer, fileSource, threadPool,
+ , frontend(pixelRatio)
+ , map(frontend, observer, fileSource,
MapOptions().withMapMode(mode).withSize(frontend.getSize()).withPixelRatio(pixelRatio)) {}
};
@@ -744,7 +742,6 @@ TEST(Map, DontLoadUnneededTiles) {
TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) {
util::RunLoop runLoop;
- ThreadPool threadPool { 4 };
using namespace std::chrono_literals;
@@ -756,7 +753,7 @@ TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) {
util::Timer timer;
- HeadlessFrontend frontend(1, threadPool);
+ HeadlessFrontend frontend(1);
StubMapObserver observer;
observer.didFinishRenderingFrameCallback = [&] (MapObserver::RenderMode) {
@@ -768,7 +765,7 @@ TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) {
});
};
- Map map(frontend, observer, threadPool,
+ Map map(frontend, observer,
MapOptions().withMapMode(MapMode::Continuous).withSize(frontend.getSize()),
ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets"));
map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json"));
diff --git a/test/map/prefetch.test.cpp b/test/map/prefetch.test.cpp
index 3232c99a22..071c918427 100644
--- a/test/map/prefetch.test.cpp
+++ b/test/map/prefetch.test.cpp
@@ -6,7 +6,6 @@
#include <mbgl/map/map_options.hpp>
#include <mbgl/gl/headless_frontend.hpp>
#include <mbgl/style/style.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/util/run_loop.hpp>
@@ -22,7 +21,6 @@ using namespace std::chrono_literals;
TEST(Map, PrefetchTiles) {
util::RunLoop runLoop;
- ThreadPool threadPool(4);
std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>();
util::Timer emergencyShutoff;
@@ -36,8 +34,8 @@ TEST(Map, PrefetchTiles) {
runLoop.stop();
};
- HeadlessFrontend frontend { { 512, 512 }, 1, threadPool };
- MapAdapter map(frontend, observer, fileSource, threadPool,
+ HeadlessFrontend frontend { { 512, 512 }, 1 };
+ MapAdapter map(frontend, observer, fileSource,
MapOptions().withMapMode(MapMode::Continuous).withSize(frontend.getSize()));
std::vector<int> tiles;
diff --git a/test/renderer/image_manager.test.cpp b/test/renderer/image_manager.test.cpp
index 7f0d670846..87a24e3bd3 100644
--- a/test/renderer/image_manager.test.cpp
+++ b/test/renderer/image_manager.test.cpp
@@ -9,7 +9,6 @@
#include <mbgl/util/io.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/string.hpp>
#include <utility>
diff --git a/test/sprite/sprite_loader.test.cpp b/test/sprite/sprite_loader.test.cpp
index 3691572265..122e711f51 100644
--- a/test/sprite/sprite_loader.test.cpp
+++ b/test/sprite/sprite_loader.test.cpp
@@ -8,7 +8,6 @@
#include <mbgl/util/io.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/string.hpp>
#include <utility>
@@ -37,7 +36,6 @@ public:
util::RunLoop loop;
StubFileSource fileSource;
StubSpriteLoaderObserver observer;
- ThreadPool threadPool { 1 };
SpriteLoader spriteLoader{ 1 };
void run() {
@@ -45,7 +43,7 @@ public:
Log::setObserver(std::make_unique<Log::NullObserver>());
spriteLoader.setObserver(&observer);
- spriteLoader.load("test/fixtures/resources/sprite", threadPool, fileSource);
+ spriteLoader.load("test/fixtures/resources/sprite", fileSource);
loop.run();
}
diff --git a/test/src/mbgl/test/map_adapter.hpp b/test/src/mbgl/test/map_adapter.hpp
index 5bdab1d164..d4af579ae1 100644
--- a/test/src/mbgl/test/map_adapter.hpp
+++ b/test/src/mbgl/test/map_adapter.hpp
@@ -13,9 +13,8 @@ public:
explicit MapAdapter(RendererFrontend& frontend,
MapObserver& observer,
std::shared_ptr<FileSource> fileSource,
- Scheduler& scheduler,
const MapOptions& options)
- : Map(std::make_unique<Map::Impl>(frontend, observer, scheduler, std::move(fileSource), options)) {}
+ : Map(std::make_unique<Map::Impl>(frontend, observer, std::move(fileSource), options)) {}
};
} // namespace mbgl
diff --git a/test/src/mbgl/test/test.cpp b/test/src/mbgl/test/test.cpp
index 4c3dad1727..1c77aae2a1 100644
--- a/test/src/mbgl/test/test.cpp
+++ b/test/src/mbgl/test/test.cpp
@@ -1,3 +1,4 @@
+#include <mbgl/actor/scheduler.hpp>
#include <mbgl/test.hpp>
#include <mbgl/test/util.hpp>
diff --git a/test/style/source.test.cpp b/test/style/source.test.cpp
index f0ff1f81b4..289e41c75f 100644
--- a/test/style/source.test.cpp
+++ b/test/style/source.test.cpp
@@ -31,7 +31,6 @@
#include <mbgl/util/image.hpp>
#include <mbgl/util/tileset.hpp>
-#include <mbgl/util/shared_thread_pool.hpp>
#include <mbgl/util/logging.hpp>
#include <mbgl/util/optional.hpp>
#include <mbgl/util/range.hpp>
@@ -55,8 +54,7 @@ public:
StubRenderSourceObserver renderSourceObserver;
Transform transform;
TransformState transformState;
- ThreadPool threadPool { 1 };
- Style style { loop, fileSource, 1 };
+ Style style { fileSource, 1 };
AnnotationManager annotationManager { style };
ImageManager imageManager;
GlyphManager glyphManager { fileSource };
@@ -65,7 +63,6 @@ public:
1.0,
MapDebugOptions(),
transformState,
- threadPool,
fileSource,
MapMode::Continuous,
annotationManager,
@@ -763,7 +760,6 @@ TEST(Source, ImageSourceImageUpdate) {
TEST(Source, CustomGeometrySourceSetTileData) {
SourceTest test;
- std::shared_ptr<ThreadPool> threadPool = sharedThreadPool();
CustomGeometrySource source("source", CustomGeometrySource::Options());
source.loadDescription(test.fileSource);
diff --git a/test/style/style.test.cpp b/test/style/style.test.cpp
index 7f57651331..72f74d3b01 100644
--- a/test/style/style.test.cpp
+++ b/test/style/style.test.cpp
@@ -9,7 +9,6 @@
#include <mbgl/style/layers/line_layer.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <memory>
@@ -19,9 +18,8 @@ using namespace mbgl::style;
TEST(Style, Properties) {
util::RunLoop loop;
- ThreadPool threadPool{ 1 };
StubFileSource fileSource;
- Style::Impl style { threadPool, fileSource, 1.0 };
+ Style::Impl style { fileSource, 1.0 };
style.loadJSON(R"STYLE({"name": "Test"})STYLE");
ASSERT_EQ("Test", style.getName());
@@ -62,9 +60,8 @@ TEST(Style, Properties) {
TEST(Style, DuplicateSource) {
util::RunLoop loop;
- ThreadPool threadPool{ 1 };
StubFileSource fileSource;
- Style::Impl style { threadPool, fileSource, 1.0 };
+ Style::Impl style { fileSource, 1.0 };
style.loadJSON(util::read_file("test/fixtures/resources/style-unused-sources.json"));
@@ -84,9 +81,8 @@ TEST(Style, RemoveSourceInUse) {
auto log = new FixtureLogObserver();
Log::setObserver(std::unique_ptr<Log::Observer>(log));
- ThreadPool threadPool{ 1 };
StubFileSource fileSource;
- Style::Impl style { threadPool, fileSource, 1.0 };
+ Style::Impl style { fileSource, 1.0 };
style.loadJSON(util::read_file("test/fixtures/resources/style-unused-sources.json"));
diff --git a/test/style/style_layer.test.cpp b/test/style/style_layer.test.cpp
index 7598d888e9..d6a926c631 100644
--- a/test/style/style_layer.test.cpp
+++ b/test/style/style_layer.test.cpp
@@ -21,7 +21,6 @@
#include <mbgl/test/stub_file_source.hpp>
#include <mbgl/util/color.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/io.hpp>
#include <memory>
@@ -283,9 +282,8 @@ TEST(Layer, DuplicateLayer) {
util::RunLoop loop;
// Setup style
- ThreadPool threadPool{ 1 };
StubFileSource fileSource;
- Style::Impl style { threadPool, fileSource, 1.0 };
+ Style::Impl style { fileSource, 1.0 };
style.loadJSON(util::read_file("test/fixtures/resources/style-unused-sources.json"));
// Add initial layer
diff --git a/test/text/local_glyph_rasterizer.test.cpp b/test/text/local_glyph_rasterizer.test.cpp
index f21ac0b883..4c0719e16c 100644
--- a/test/text/local_glyph_rasterizer.test.cpp
+++ b/test/text/local_glyph_rasterizer.test.cpp
@@ -8,7 +8,6 @@
#include <mbgl/util/color.hpp>
#include <mbgl/renderer/renderer.hpp>
#include <mbgl/gl/headless_frontend.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/style/style.hpp>
/*
@@ -34,15 +33,14 @@ namespace {
class LocalGlyphRasterizerTest {
public:
LocalGlyphRasterizerTest(const optional<std::string> fontFamily)
- : frontend(1, threadPool, optional<std::string>(), gfx::ContextMode::Unique, fontFamily)
+ : frontend(1, optional<std::string>(), gfx::ContextMode::Unique, fontFamily)
{
}
util::RunLoop loop;
std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>();
- ThreadPool threadPool { 4 };
HeadlessFrontend frontend;
- MapAdapter map { frontend, MapObserver::nullObserver(), fileSource, threadPool,
+ MapAdapter map { frontend, MapObserver::nullObserver(), fileSource,
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())};
void checkRendering(const char * name) {
diff --git a/test/tile/custom_geometry_tile.test.cpp b/test/tile/custom_geometry_tile.test.cpp
index 7a627bad88..50bc7d0e8f 100644
--- a/test/tile/custom_geometry_tile.test.cpp
+++ b/test/tile/custom_geometry_tile.test.cpp
@@ -5,7 +5,6 @@
#include <mbgl/tile/custom_geometry_tile.hpp>
#include <mbgl/style/custom_tile_loader.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/map/transform.hpp>
#include <mbgl/renderer/tile_parameters.hpp>
@@ -26,8 +25,7 @@ public:
FakeFileSource fileSource;
TransformState transformState;
util::RunLoop loop;
- ThreadPool threadPool { 1 };
- style::Style style { loop, fileSource, 1 };
+ style::Style style { fileSource, 1 };
AnnotationManager annotationManager { style };
ImageManager imageManager;
GlyphManager glyphManager { fileSource };
@@ -36,7 +34,6 @@ public:
1.0,
MapDebugOptions(),
transformState,
- threadPool,
fileSource,
MapMode::Continuous,
annotationManager,
diff --git a/test/tile/geojson_tile.test.cpp b/test/tile/geojson_tile.test.cpp
index 772590efb2..4f4435182f 100644
--- a/test/tile/geojson_tile.test.cpp
+++ b/test/tile/geojson_tile.test.cpp
@@ -4,7 +4,6 @@
#include <mbgl/tile/geojson_tile.hpp>
#include <mbgl/tile/tile_loader_impl.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/map/transform.hpp>
#include <mbgl/renderer/tile_parameters.hpp>
@@ -25,8 +24,7 @@ public:
FakeFileSource fileSource;
TransformState transformState;
util::RunLoop loop;
- ThreadPool threadPool { 1 };
- style::Style style { loop, fileSource, 1 };
+ style::Style style { fileSource, 1 };
AnnotationManager annotationManager { style };
ImageManager imageManager;
GlyphManager glyphManager { fileSource };
@@ -36,7 +34,6 @@ public:
1.0,
MapDebugOptions(),
transformState,
- threadPool,
fileSource,
MapMode::Continuous,
annotationManager,
diff --git a/test/tile/raster_dem_tile.test.cpp b/test/tile/raster_dem_tile.test.cpp
index 5a6f5a8c9a..e2e7d44b9b 100644
--- a/test/tile/raster_dem_tile.test.cpp
+++ b/test/tile/raster_dem_tile.test.cpp
@@ -4,7 +4,6 @@
#include <mbgl/tile/tile_loader_impl.hpp>
#include <mbgl/style/style.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/map/transform.hpp>
#include <mbgl/annotation/annotation_manager.hpp>
@@ -20,8 +19,7 @@ public:
FakeFileSource fileSource;
TransformState transformState;
util::RunLoop loop;
- ThreadPool threadPool { 1 };
- style::Style style { loop, fileSource, 1 };
+ style::Style style { fileSource, 1 };
AnnotationManager annotationManager { style };
ImageManager imageManager;
GlyphManager glyphManager { fileSource };
@@ -31,7 +29,6 @@ public:
1.0,
MapDebugOptions(),
transformState,
- threadPool,
fileSource,
MapMode::Continuous,
annotationManager,
diff --git a/test/tile/raster_tile.test.cpp b/test/tile/raster_tile.test.cpp
index 8b2b3dee61..2e35a94025 100644
--- a/test/tile/raster_tile.test.cpp
+++ b/test/tile/raster_tile.test.cpp
@@ -4,7 +4,6 @@
#include <mbgl/tile/tile_loader_impl.hpp>
#include <mbgl/style/style.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/map/transform.hpp>
#include <mbgl/annotation/annotation_manager.hpp>
@@ -20,8 +19,7 @@ public:
FakeFileSource fileSource;
TransformState transformState;
util::RunLoop loop;
- ThreadPool threadPool { 1 };
- style::Style style { loop, fileSource, 1 };
+ style::Style style { fileSource, 1 };
AnnotationManager annotationManager { style };
ImageManager imageManager;
GlyphManager glyphManager { fileSource };
@@ -31,7 +29,6 @@ public:
1.0,
MapDebugOptions(),
transformState,
- threadPool,
fileSource,
MapMode::Continuous,
annotationManager,
diff --git a/test/tile/vector_tile.test.cpp b/test/tile/vector_tile.test.cpp
index ed3eda7863..c610d8c1a7 100644
--- a/test/tile/vector_tile.test.cpp
+++ b/test/tile/vector_tile.test.cpp
@@ -4,7 +4,6 @@
#include <mbgl/tile/vector_tile_data.hpp>
#include <mbgl/tile/tile_loader_impl.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/map/transform.hpp>
#include <mbgl/style/style.hpp>
@@ -26,8 +25,7 @@ public:
FakeFileSource fileSource;
TransformState transformState;
util::RunLoop loop;
- ThreadPool threadPool { 1 };
- style::Style style { loop, fileSource, 1 };
+ style::Style style { fileSource, 1 };
AnnotationManager annotationManager { style };
ImageManager imageManager;
GlyphManager glyphManager { fileSource };
@@ -37,7 +35,6 @@ public:
1.0,
MapDebugOptions(),
transformState,
- threadPool,
fileSource,
MapMode::Continuous,
annotationManager,
diff --git a/test/util/async_task.test.cpp b/test/util/async_task.test.cpp
index f3025e8952..682926a17d 100644
--- a/test/util/async_task.test.cpp
+++ b/test/util/async_task.test.cpp
@@ -1,14 +1,15 @@
#include <mbgl/util/async_task.hpp>
-#include <mbgl/util/run_loop.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
-#include <mbgl/actor/actor_ref.hpp>
+#include <mbgl/actor/actor_ref.hpp>
+#include <mbgl/actor/scheduler.hpp>
#include <mbgl/test/util.hpp>
+#include <mbgl/util/run_loop.hpp>
#include <atomic>
#include <future>
#include <vector>
+using namespace mbgl;
using namespace mbgl::util;
namespace {
@@ -104,11 +105,11 @@ TEST(AsyncTask, RequestCoalescingMultithreaded) {
unsigned count = 0, numThreads = 25;
AsyncTask async([&count] { ++count; });
- mbgl::ThreadPool threads(numThreads);
- auto mailbox = std::make_shared<mbgl::Mailbox>(threads);
+ auto retainer = Scheduler::GetBackground();
+ auto mailbox = std::make_shared<Mailbox>(*retainer);
TestWorker worker(&async);
- mbgl::ActorRef<TestWorker> workerRef(worker, mailbox);
+ ActorRef<TestWorker> workerRef(worker, mailbox);
for (unsigned i = 0; i < numThreads; ++i) {
workerRef.invoke(&TestWorker::run);
@@ -133,11 +134,11 @@ TEST(AsyncTask, ThreadSafety) {
AsyncTask async([&count] { ++count; });
- mbgl::ThreadPool threads(numThreads);
- auto mailbox = std::make_shared<mbgl::Mailbox>(threads);
+ auto retainer = Scheduler::GetBackground();
+ auto mailbox = std::make_shared<Mailbox>(*retainer);
TestWorker worker(&async);
- mbgl::ActorRef<TestWorker> workerRef(worker, mailbox);
+ ActorRef<TestWorker> workerRef(worker, mailbox);
for (unsigned i = 0; i < numThreads; ++i) {
// The callback runs on the worker, thus the atomic type.
diff --git a/test/util/memory.test.cpp b/test/util/memory.test.cpp
index e3ad976432..8602e6ac5b 100644
--- a/test/util/memory.test.cpp
+++ b/test/util/memory.test.cpp
@@ -5,7 +5,6 @@
#include <mbgl/map/map_options.hpp>
#include <mbgl/gl/headless_frontend.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/style/style.hpp>
@@ -37,7 +36,6 @@ public:
util::RunLoop runLoop;
std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>();
- ThreadPool threadPool { 4 };
private:
Response response(const std::string& path) {
@@ -72,8 +70,8 @@ TEST(Memory, Vector) {
MemoryTest test;
float ratio { 2 };
- HeadlessFrontend frontend { { 256, 256 }, ratio, test.threadPool };
- MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource, test.threadPool,
+ HeadlessFrontend frontend { { 256, 256 }, ratio };
+ MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource,
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()).withPixelRatio(ratio));
map.jumpTo(CameraOptions().withZoom(16));
map.getStyle().loadURL("mapbox://streets");
@@ -85,8 +83,8 @@ TEST(Memory, Raster) {
MemoryTest test;
float ratio { 2 };
- HeadlessFrontend frontend { { 256, 256 }, ratio, test.threadPool };
- MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource, test.threadPool,
+ HeadlessFrontend frontend { { 256, 256 }, ratio };
+ MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource,
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()).withPixelRatio(ratio));
map.getStyle().loadURL("mapbox://satellite");
@@ -123,8 +121,8 @@ TEST(Memory, Footprint) {
class FrontendAndMap {
public:
FrontendAndMap(MemoryTest& test_, const char* style)
- : frontend(Size{ 256, 256 }, 2, test_.threadPool)
- , map(frontend, MapObserver::nullObserver(), test_.fileSource, test_.threadPool,
+ : frontend(Size{ 256, 256 }, 2)
+ , map(frontend, MapObserver::nullObserver(), test_.fileSource,
MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()).withPixelRatio(2)) {
map.jumpTo(CameraOptions().withZoom(16));
map.getStyle().loadURL(style);
diff --git a/test/util/thread.test.cpp b/test/util/thread.test.cpp
index 2bcb9d8959..49735585c6 100644
--- a/test/util/thread.test.cpp
+++ b/test/util/thread.test.cpp
@@ -1,8 +1,9 @@
+#include <mbgl/util/thread.hpp>
+
#include <mbgl/actor/actor_ref.hpp>
+#include <mbgl/actor/scheduler.hpp>
#include <mbgl/test/util.hpp>
-#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <mbgl/util/thread.hpp>
#include <mbgl/util/timer.hpp>
#include <atomic>
@@ -139,8 +140,7 @@ TEST(Thread, Concurrency) {
unsigned numMessages = 100000;
std::atomic_uint completed(numMessages);
- ThreadPool threadPool(10);
- Actor<TestWorker> poolWorker(threadPool);
+ Actor<TestWorker> poolWorker(Scheduler::GetBackground());
auto poolWorkerRef = poolWorker.self();
Thread<TestWorker> threadedObject("Test");
@@ -165,8 +165,7 @@ TEST(Thread, Concurrency) {
TEST(Thread, ThreadPoolMessaging) {
auto loop = std::make_shared<RunLoop>();
- ThreadPool threadPool(1);
- Actor<TestWorker> poolWorker(threadPool);
+ Actor<TestWorker> poolWorker(Scheduler::GetBackground());
auto poolWorkerRef = poolWorker.self();
Thread<TestWorker> threadedObject("Test");