diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2017-07-25 13:59:43 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2017-07-25 13:59:43 +0200 |
commit | c9bf1235cdb0075900ad8e471886bbefceef891c (patch) | |
tree | aaca2b50a33173d2519bcb538fa7bd387880a604 | |
parent | 5d78f4813671cf54b1fd4c35036016ac3b2854c2 (diff) | |
download | qtlocation-mapboxgl-c9bf1235cdb0075900ad8e471886bbefceef891c.tar.gz |
[test] test usage of expired RasterTile while offline
-rw-r--r-- | cmake/test-files.cmake | 1 | ||||
-rw-r--r-- | test/api/render_caching.cpp | 91 |
2 files changed, 77 insertions, 15 deletions
diff --git a/cmake/test-files.cmake b/cmake/test-files.cmake index 3595233f2a..518f5adf66 100644 --- a/cmake/test-files.cmake +++ b/cmake/test-files.cmake @@ -17,6 +17,7 @@ set(MBGL_TEST_FILES test/api/api_misuse.test.cpp test/api/custom_layer.test.cpp test/api/query.test.cpp + test/api/render_caching.cpp test/api/render_missing.test.cpp test/api/repeated_render.test.cpp diff --git a/test/api/render_caching.cpp b/test/api/render_caching.cpp index 4533ca2aaf..cec501f84e 100644 --- a/test/api/render_caching.cpp +++ b/test/api/render_caching.cpp @@ -17,24 +17,58 @@ #include <future> #include <memory> +class FrameObserver : public mbgl::MapObserver { +public: + void onDidFinishRenderingFrame(RenderMode mode) { + if (mode == RenderMode::Full) { + fprintf(stderr, "onDidFinishRenderingFrame: full\n"); +// mbgl::util::RunLoop::Get()->stop(); + } else { + fprintf(stderr, "onDidFinishRenderingFrame: partial\n"); + + } + } + void onDidFinishRenderingMap(RenderMode mode) { +// fprintf(stderr, "onDidFinishRenderingMap\n"); + if (mode == RenderMode::Full) { + fprintf(stderr, "onDidFinishRenderingMap: full\n"); + mbgl::util::RunLoop::Get()->stop(); + } else { + + fprintf(stderr, "onDidFinishRenderingMap: partial\n"); + } + } +}; + TEST(API, RenderExpiredRasterTile) { using namespace mbgl; + Log::setObserver(std::make_unique<FixtureLogObserver>()); + util::RunLoop loop; HeadlessBackend backend; BackendScope scope { backend }; - OffscreenView view { backend.getContext(), { 256, 512 } }; + OffscreenView view { backend.getContext(), { 512, 256 } }; float pixelRatio { 1 }; - DefaultFileSource db(":memory:"); + DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets"); + fileSource.setOnlineStatus(false); ThreadPool threadPool(4); StubRendererFrontend rendererFrontend { std::make_unique<Renderer>(backend, pixelRatio, fileSource, threadPool), view }; - // Log::setObserver(std::make_unique<FixtureLogObserver>()); + Response response; + response.expires = util::parseTimestamp("Tue, 04 Nov 2014 02:13:24 GMT"); + + response.data = std::make_shared<std::string>(util::read_file("test/fixtures/api/assets/raster/6-10-24.png")); + fileSource.put(Resource::tile("https://tiles/{z}-{x}-{y}.png", 1, 10, 24, 6, Tileset::Scheme::XYZ), response); + response.data = std::make_shared<std::string>(util::read_file("test/fixtures/api/assets/raster/10-163-395.png")); + fileSource.put(Resource::tile("https://tiles/{z}-{x}-{y}.png", 1, 163, 395, 10, Tileset::Scheme::XYZ), response); + - Map map { rendererFrontend, MapObserver::nullObserver(), view.getSize(), pixelRatio, fileSource, - threadPool, MapMode::Still }; + FrameObserver observer; + Map map { rendererFrontend, observer, view.getSize(), pixelRatio, fileSource, + threadPool, MapMode::Continuous }; map.getStyle().loadJSON(R"STYLE({ "version": 8, @@ -50,16 +84,43 @@ TEST(API, RenderExpiredRasterTile) { "source": "raster" }] })STYLE"); - } - map.setLatLngZoom({ 37.8, -122.5 }, 10); - test::checkImage("test/fixtures/api/cached_raster", test::render(map, view), 0.0006, 0.1); + map.setLatLngZoom({ 37.8, -122.4 }, 10); + + loop.run(); + + PremultipliedImage result = view.readStillImage(); + test::checkImage("test/fixtures/api/cached_raster", result, 0.0006, 0.1); - // auto observer = Log::removeObserver(); - // auto flo = dynamic_cast<FixtureLogObserver*>(observer.get()); - // EXPECT_EQ(1u, flo->count(FixtureLog::Message( - // EventSeverity::Error, Event::Style, -1, - // std::string("Failed to load tile 0/0/0=>0 for source mapbox: " + message)))); - // auto unchecked = flo->unchecked(); - // EXPECT_TRUE(unchecked.empty()) << unchecked; +// auto flo = dynamic_cast<FixtureLogObserver*>(Log::removeObserver().get()); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 10/163/395=>10 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 10/164/395=>10 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 9/81/197=>9 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 9/82/197=>9 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 8/40/98=>8 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 8/41/98=>8 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 7/20/49=>7 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 6/10/24=>6 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 5/5/12=>5 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 4/2/6=>4 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 3/1/3=>3 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 2/0/1=>2 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 1/0/0=>1 for source raster: Online connectivity is disabled."))); +// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1, +// "Failed to load tile 0/0/0=>0 for source raster: Online connectivity is disabled."))); +// auto unchecked = flo->unchecked(); +// EXPECT_TRUE(unchecked.empty()) << unchecked; } |