diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/api/annotations.cpp | 25 | ||||
-rw-r--r-- | test/api/api_misuse.cpp | 16 | ||||
-rw-r--r-- | test/api/custom_layer.cpp | 3 | ||||
-rw-r--r-- | test/api/render_missing.cpp | 11 | ||||
-rw-r--r-- | test/api/repeated_render.cpp | 27 | ||||
-rw-r--r-- | test/api/set_style.cpp | 3 | ||||
-rw-r--r-- | test/map/map.cpp | 48 | ||||
-rw-r--r-- | test/src/mbgl/test/mock_view.hpp | 3 | ||||
-rw-r--r-- | test/src/mbgl/test/util.cpp | 14 | ||||
-rw-r--r-- | test/test.gypi | 1 |
10 files changed, 82 insertions, 69 deletions
diff --git a/test/api/annotations.cpp b/test/api/annotations.cpp index 0af64095c1..f403512660 100644 --- a/test/api/annotations.cpp +++ b/test/api/annotations.cpp @@ -8,6 +8,7 @@ #include <mbgl/platform/default/headless_view.hpp> #include <mbgl/storage/online_file_source.hpp> #include <mbgl/util/io.hpp> +#include <mbgl/util/run_loop.hpp> #include <future> #include <vector> @@ -29,6 +30,8 @@ void checkRendering(Map& map, const char * name) { } // end namespace TEST(Annotations, PointAnnotation) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -42,6 +45,8 @@ TEST(Annotations, PointAnnotation) { } TEST(Annotations, LineAnnotation) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -61,6 +66,8 @@ TEST(Annotations, LineAnnotation) { } TEST(Annotations, FillAnnotation) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -79,6 +86,8 @@ TEST(Annotations, FillAnnotation) { } TEST(Annotations, StyleSourcedShapeAnnotation) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -94,6 +103,8 @@ TEST(Annotations, StyleSourcedShapeAnnotation) { } TEST(Annotations, AddMultiple) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -111,6 +122,8 @@ TEST(Annotations, AddMultiple) { } TEST(Annotations, NonImmediateAdd) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -131,6 +144,8 @@ TEST(Annotations, NonImmediateAdd) { } TEST(Annotations, UpdateIcon) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -150,6 +165,8 @@ TEST(Annotations, UpdateIcon) { } TEST(Annotations, UpdatePoint) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -168,6 +185,8 @@ TEST(Annotations, UpdatePoint) { } TEST(Annotations, RemovePoint) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -185,6 +204,8 @@ TEST(Annotations, RemovePoint) { } TEST(Annotations, RemoveShape) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -207,6 +228,8 @@ TEST(Annotations, RemoveShape) { } TEST(Annotations, ImmediateRemoveShape) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; @@ -219,6 +242,8 @@ TEST(Annotations, ImmediateRemoveShape) { } TEST(Annotations, SwitchStyle) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; diff --git a/test/api/api_misuse.cpp b/test/api/api_misuse.cpp index 932c4717e8..5e413df369 100644 --- a/test/api/api_misuse.cpp +++ b/test/api/api_misuse.cpp @@ -6,6 +6,7 @@ #include <mbgl/platform/default/headless_view.hpp> #include <mbgl/storage/online_file_source.hpp> #include <mbgl/util/exception.hpp> +#include <mbgl/util/run_loop.hpp> #include <future> @@ -15,6 +16,8 @@ TEST(API, RenderWithoutCallback) { FixtureLogObserver* log = new FixtureLogObserver(); Log::setObserver(std::unique_ptr<Log::Observer>(log)); + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); view.resize(128, 512); @@ -37,6 +40,8 @@ TEST(API, RenderWithoutCallback) { } TEST(API, RenderWithoutStyle) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); view.resize(128, 512); @@ -44,13 +49,16 @@ TEST(API, RenderWithoutStyle) { Map map(view, fileSource, MapMode::Still); - std::promise<std::exception_ptr> promise; - map.renderStill([&promise](std::exception_ptr error, PremultipliedImage&&) { - promise.set_value(error); + std::exception_ptr error; + map.renderStill([&](std::exception_ptr error_, PremultipliedImage&&) { + error = error_; + loop.stop(); }); + loop.run(); + try { - std::rethrow_exception(promise.get_future().get()); + std::rethrow_exception(error); } catch (const util::MisuseException& ex) { EXPECT_EQ(std::string(ex.what()), "Map doesn't have a style"); } catch (const std::exception&) { diff --git a/test/api/custom_layer.cpp b/test/api/custom_layer.cpp index 5346fee124..46eecb2250 100644 --- a/test/api/custom_layer.cpp +++ b/test/api/custom_layer.cpp @@ -7,6 +7,7 @@ #include <mbgl/layer/custom_layer.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/mat4.hpp> +#include <mbgl/util/run_loop.hpp> using namespace mbgl; @@ -68,6 +69,8 @@ public: }; TEST(CustomLayer, Basic) { + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; diff --git a/test/api/render_missing.cpp b/test/api/render_missing.cpp index f29a0c2b9c..bb14416840 100644 --- a/test/api/render_missing.cpp +++ b/test/api/render_missing.cpp @@ -7,6 +7,7 @@ #include <mbgl/storage/default_file_source.hpp> #include <mbgl/util/image.hpp> #include <mbgl/util/io.hpp> +#include <mbgl/util/run_loop.hpp> #include <future> @@ -19,6 +20,8 @@ TEST(API, TEST_REQUIRES_SERVER(RenderMissingTile)) { using namespace mbgl; + util::RunLoop loop; + const auto style = util::read_file("test/fixtures/api/water_missing_tiles.json"); auto display = std::make_shared<mbgl::HeadlessDisplay>(); @@ -38,8 +41,7 @@ TEST(API, TEST_REQUIRES_SERVER(RenderMissingTile)) { // This host does not respond (== connection error). map.setStyleJSON(style, ""); - std::promise<void> promise; - map.renderStill([&promise, &message](std::exception_ptr err, PremultipliedImage&&) { + map.renderStill([&](std::exception_ptr err, PremultipliedImage&&) { ASSERT_TRUE(err.operator bool()); try { std::rethrow_exception(err); @@ -47,9 +49,10 @@ TEST(API, TEST_REQUIRES_SERVER(RenderMissingTile)) { message = ex.what(); EXPECT_TRUE(message.find("connect") != std::string::npos); } - promise.set_value(); + loop.stop(); }); - promise.get_future().get(); + + loop.run(); auto observer = Log::removeObserver(); auto flo = dynamic_cast<FixtureLogObserver*>(observer.get()); diff --git a/test/api/repeated_render.cpp b/test/api/repeated_render.cpp index ef707aa7c4..cf5d115997 100644 --- a/test/api/repeated_render.cpp +++ b/test/api/repeated_render.cpp @@ -7,12 +7,15 @@ #include <mbgl/storage/default_file_source.hpp> #include <mbgl/util/image.hpp> #include <mbgl/util/io.hpp> +#include <mbgl/util/run_loop.hpp> #include <future> TEST(API, RepeatedRender) { using namespace mbgl; + util::RunLoop loop; + const auto style = util::read_file("test/fixtures/api/water.json"); auto display = std::make_shared<mbgl::HeadlessDisplay>(); @@ -30,11 +33,15 @@ TEST(API, RepeatedRender) { { map.setStyleJSON(style, ""); - std::promise<PremultipliedImage> promise; - map.renderStill([&promise](std::exception_ptr, PremultipliedImage&& image) { - promise.set_value(std::move(image)); + PremultipliedImage result; + map.renderStill([&result](std::exception_ptr, PremultipliedImage&& image) { + result = std::move(image); }); - auto result = promise.get_future().get(); + + while (!result.size()) { + loop.runOnce(); + } + ASSERT_EQ(256, result.width); ASSERT_EQ(512, result.height); #if !TEST_READ_ONLY @@ -44,11 +51,15 @@ TEST(API, RepeatedRender) { { map.setStyleJSON(style, ""); - std::promise<PremultipliedImage> promise; - map.renderStill([&promise](std::exception_ptr, PremultipliedImage&& image) { - promise.set_value(std::move(image)); + PremultipliedImage result; + map.renderStill([&result](std::exception_ptr, PremultipliedImage&& image) { + result = std::move(image); }); - auto result = promise.get_future().get(); + + while (!result.size()) { + loop.runOnce(); + } + ASSERT_EQ(256, result.width); ASSERT_EQ(512, result.height); #if !TEST_READ_ONLY diff --git a/test/api/set_style.cpp b/test/api/set_style.cpp index 329ec2801d..317021b8db 100644 --- a/test/api/set_style.cpp +++ b/test/api/set_style.cpp @@ -5,11 +5,14 @@ #include <mbgl/platform/default/headless_view.hpp> #include <mbgl/platform/default/headless_display.hpp> #include <mbgl/storage/online_file_source.hpp> +#include <mbgl/util/run_loop.hpp> TEST(API, SetStyle) { using namespace mbgl; + util::RunLoop loop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); OnlineFileSource fileSource; diff --git a/test/map/map.cpp b/test/map/map.cpp index b1048e97e2..2bc00b4334 100644 --- a/test/map/map.cpp +++ b/test/map/map.cpp @@ -3,59 +3,17 @@ #include <mbgl/map/map.hpp> #include <mbgl/platform/default/headless_view.hpp> #include <mbgl/platform/default/headless_display.hpp> -#include <mbgl/storage/online_file_source.hpp> #include <mbgl/storage/network_status.hpp> -#include <mbgl/storage/offline_database.hpp> #include <mbgl/storage/default_file_source.hpp> #include <mbgl/util/io.hpp> +#include <mbgl/util/run_loop.hpp> using namespace mbgl; using namespace std::literals::string_literals; -TEST(Map, PauseResume) { - auto display = std::make_shared<mbgl::HeadlessDisplay>(); - HeadlessView view(display, 1); - OnlineFileSource fileSource; - - Map map(view, fileSource, MapMode::Continuous); - - map.pause(); - map.resume(); -} - -TEST(Map, DoublePause) { - auto display = std::make_shared<mbgl::HeadlessDisplay>(); - HeadlessView view(display, 1); - OnlineFileSource fileSource; - - Map map(view, fileSource, MapMode::Continuous); - - map.pause(); - map.pause(); - map.resume(); -} - -TEST(Map, ResumeWithoutPause) { - auto display = std::make_shared<mbgl::HeadlessDisplay>(); - HeadlessView view(display, 1); - OnlineFileSource fileSource; - - Map map(view, fileSource, MapMode::Continuous); - - map.resume(); -} - -TEST(Map, DestroyPaused) { - auto display = std::make_shared<mbgl::HeadlessDisplay>(); - HeadlessView view(display, 1); - OnlineFileSource fileSource; - - Map map(view, fileSource, MapMode::Continuous); - - map.pause(); -} - TEST(Map, Offline) { + util::RunLoop runLoop; + auto display = std::make_shared<mbgl::HeadlessDisplay>(); HeadlessView view(display, 1); DefaultFileSource fileSource(":memory:", "."); diff --git a/test/src/mbgl/test/mock_view.hpp b/test/src/mbgl/test/mock_view.hpp index e608545da5..50ae466d19 100644 --- a/test/src/mbgl/test/mock_view.hpp +++ b/test/src/mbgl/test/mock_view.hpp @@ -18,10 +18,7 @@ public: void activate() override {}; void deactivate() override {}; - void notify() override {}; void invalidate() override {} - void beforeRender() override {} - void afterRender() override {} }; } diff --git a/test/src/mbgl/test/util.cpp b/test/src/mbgl/test/util.cpp index ca2282a4b5..4021fd89b1 100644 --- a/test/src/mbgl/test/util.cpp +++ b/test/src/mbgl/test/util.cpp @@ -5,6 +5,7 @@ #include <mbgl/util/image.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/chrono.hpp> +#include <mbgl/util/run_loop.hpp> #include <mapbox/pixelmatch.hpp> @@ -86,11 +87,16 @@ Server::~Server() { } PremultipliedImage render(Map& map) { - std::promise<PremultipliedImage> promise; - map.renderStill([&](std::exception_ptr, PremultipliedImage&& image) { - promise.set_value(std::move(image)); + PremultipliedImage result; + map.renderStill([&result](std::exception_ptr, PremultipliedImage&& image) { + result = std::move(image); }); - return promise.get_future().get(); + + while (!result.size()) { + util::RunLoop::Get()->runOnce(); + } + + return result; } void checkImage(const std::string& base, diff --git a/test/test.gypi b/test/test.gypi index 42dab6432c..6b3b43bd0c 100644 --- a/test/test.gypi +++ b/test/test.gypi @@ -41,7 +41,6 @@ 'geometry/binpack.cpp', - 'map/map.cpp', 'map/map_context.cpp', 'map/tile.cpp', 'map/transform.cpp', |