Make the MapContext object run on its own thread on the tests

The MapContext can only run on its own thread because it is
registering a EnvironmentScope and it is making many assertions
on Debug mode if its methods are being called on the Map thread.
This commit is contained in:
Thiago Marcos P. Santos
2015-05-15 13:05:58 +03:00
parent f3c2093502
commit b162fb7c6f

View File

@@ -1,22 +1,24 @@
#include "../fixtures/util.hpp"
#include <mbgl/util/run_loop.hpp>
#include <mbgl/map/map_data.hpp>
#include <mbgl/map/map_context.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/storage/default_file_source.hpp>
#include <mbgl/util/thread.hpp>
using namespace mbgl;
TEST(MapContext, DoubleStyleLoad) {
util::RunLoop runLoop(uv_default_loop());
std::shared_ptr<HeadlessDisplay> display = std::make_shared<HeadlessDisplay>();
HeadlessView view(display, 512, 512, 1);
DefaultFileSource fileSource(nullptr);
MapData data(view, MapMode::Continuous);
MapContext context(uv_default_loop(), view, fileSource, data);
context.setStyleJSON("", "");
context.setStyleJSON("", "");
std::unique_ptr<util::Thread<MapContext>> context(
util::make_unique<util::Thread<MapContext>>(
"Map", util::ThreadPriority::Regular, view, fileSource, data));
context->invokeSync(&MapContext::setStyleJSON, "", "");
context->invokeSync(&MapContext::setStyleJSON, "", "");
}