aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-07-25 13:58:11 +0200
committerKonstantin Käfer <mail@kkaefer.com>2017-07-25 13:58:11 +0200
commit5d78f4813671cf54b1fd4c35036016ac3b2854c2 (patch)
tree8ff70befcf01597a3e66d3b23e4283e2c5a2e285
parentddfbfd0ed18b5dfc3dfd3c934eeba0df36675fd4 (diff)
[test] don't use reference for asynchronous API
-rw-r--r--platform/default/default_file_source.cpp2
-rw-r--r--test/api/render_caching.cpp65
2 files changed, 66 insertions, 1 deletions
diff --git a/platform/default/default_file_source.cpp b/platform/default/default_file_source.cpp
index 3ba89ca93..d309c55ec 100644
--- a/platform/default/default_file_source.cpp
+++ b/platform/default/default_file_source.cpp
@@ -166,7 +166,7 @@ public:
onlineFileSource.setOnlineStatus(status);
}
- void put(const Resource& resource, const Response& response) {
+ void put(Resource resource, Response response) {
offlineDatabase.put(resource, response);
}
diff --git a/test/api/render_caching.cpp b/test/api/render_caching.cpp
new file mode 100644
index 000000000..4533ca2aa
--- /dev/null
+++ b/test/api/render_caching.cpp
@@ -0,0 +1,65 @@
+#include <mbgl/test/util.hpp>
+#include <mbgl/test/fixture_log_observer.hpp>
+
+#include <mbgl/map/map.hpp>
+#include <mbgl/renderer/backend_scope.hpp>
+#include <mbgl/gl/headless_backend.hpp>
+#include <mbgl/gl/offscreen_view.hpp>
+#include <mbgl/util/default_thread_pool.hpp>
+#include <mbgl/storage/default_file_source.hpp>
+#include <mbgl/renderer/renderer.hpp>
+// #include <mbgl/util/image.hpp>
+#include <mbgl/util/io.hpp>
+#include <mbgl/util/run_loop.hpp>
+#include <mbgl/style/style.hpp>
+#include <mbgl/test/stub_renderer_frontend.hpp>
+
+#include <future>
+#include <memory>
+
+
+TEST(API, RenderExpiredRasterTile) {
+ using namespace mbgl;
+
+ util::RunLoop loop;
+
+ HeadlessBackend backend;
+ BackendScope scope { backend };
+ OffscreenView view { backend.getContext(), { 256, 512 } };
+ float pixelRatio { 1 };
+ DefaultFileSource db(":memory:");
+ ThreadPool threadPool(4);
+ StubRendererFrontend rendererFrontend { std::make_unique<Renderer>(backend, pixelRatio, fileSource, threadPool), view };
+
+ // Log::setObserver(std::make_unique<FixtureLogObserver>());
+
+ Map map { rendererFrontend, MapObserver::nullObserver(), view.getSize(), pixelRatio, fileSource,
+ threadPool, MapMode::Still };
+
+ map.getStyle().loadJSON(R"STYLE({
+ "version": 8,
+ "sources": {
+ "raster": {
+ "type": "raster",
+ "tiles": ["https://tiles/{z}-{x}-{y}.png"]
+ }
+ },
+ "layers": [{
+ "id": "raster",
+ "type": "raster",
+ "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);
+
+ // 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;
+}