From 47c92a5864d7892120df3d681b1708ee453e5f89 Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Wed, 18 Oct 2017 18:24:22 -0700 Subject: [TMP] Check moto x crash with sanitizers and valgrind --- test/map/map.test.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp index 9358175297..c1181c9e32 100644 --- a/test/map/map.test.cpp +++ b/test/map/map.test.cpp @@ -16,7 +16,9 @@ #include #include #include +#include #include +#include #include using namespace mbgl; @@ -54,12 +56,19 @@ public: didFinishRenderingFrame(mode); } } + + void onCameraDidChange(CameraChangeMode mode) final { + if (onCameraDidChangeCallback) { + onCameraDidChangeCallback(mode); + } + } std::function onWillStartLoadingMapCallback; std::function onDidFinishLoadingMapCallback; std::function didFailLoadingMapCallback; std::function didFinishLoadingStyleCallback; std::function didFinishRenderingFrame; + std::function onCameraDidChangeCallback; }; template @@ -100,6 +109,56 @@ TEST(Map, LatLngBehavior) { ASSERT_DOUBLE_EQ(latLng1.longitude(), latLng2.longitude()); } +TEST(Map, MapLoadedTilt) { + MapTest test { ":memory:", ".", 1, MapMode::Continuous }; + test.fileSource.setAccessToken("pk.eyJ1IjoiaXZvdmFuZG9uZ2VuIiwiYSI6ImNpbzVpdG10eDAwM3R1bWtubGw0Y2dsb3kifQ.S0KL6oRTIrz12tQw1etMcg"); + + bool styleSetup = false; + test.observer.didFinishLoadingStyleCallback = [&]() { + if (!styleSetup) { + styleSetup = true; + + // Add the streets source + auto source = std::make_unique("composite", "mapbox://mapbox.mapbox-streets-v7"); + test.map.getStyle().addSource(std::move(source)); + + // Add the symbols source + auto layer = std::make_unique("symbols-crash", "composite"); + layer->setSourceLayer("road_label"); + layer->setTextField(DataDrivenPropertyValue("{name_en}")); + layer->setSymbolPlacement(PropertyValue(SymbolPlacementType::Line)); + layer->setTextColor(DataDrivenPropertyValue(*Color::parse("hsl(0, 0%, 78%)"))); + test.map.getStyle().addLayer(std::move(layer)); + + CameraOptions options; + options.center = mbgl::LatLng(40.7135, -74.0066); + options.zoom = 15; + test.map.jumpTo(options); + } + }; + + test.observer.onDidFinishLoadingMapCallback = [&]() { + + mbgl::CameraOptions cameraOptions; + cameraOptions.pitch = 60 * util::DEG2RAD; + + mbgl::AnimationOptions animationOptions; + animationOptions.duration.emplace(mbgl::Milliseconds(2000)); + + test.map.flyTo(cameraOptions, animationOptions); + }; + + test.observer.onCameraDidChangeCallback = [&](MapObserver::CameraChangeMode mode) { + if (mode == MapObserver::CameraChangeMode::Animated) { + test.runLoop.stop(); + } + }; + + test.map.setSize({2048, 2048}); + test.map.getStyle().loadURL("mapbox://styles/ivovandongen/citfk0tw5000o2inv9aueajs0"); + test.runLoop.run(); +} + TEST(Map, LatLngBoundsToCamera) { MapTest<> test; -- cgit v1.2.1