#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace mbgl; class VectorTileTest { public: FakeFileSource fileSource; TransformState transformState; util::RunLoop loop; ThreadPool threadPool { 1 }; style::Style style { loop, fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; Tileset tileset { { "https://example.com" }, { 0, 22 }, "none" }; TileParameters tileParameters { 1.0, MapDebugOptions(), transformState, threadPool, fileSource, MapMode::Continuous, annotationManager, imageManager, glyphManager, 0 }; }; TEST(VectorTile, setError) { VectorTileTest test; VectorTile tile(OverscaledTileID(0, 0, 0), "source", test.tileParameters, test.tileset); tile.setError(std::make_exception_ptr(std::runtime_error("test"))); EXPECT_FALSE(tile.isRenderable()); EXPECT_TRUE(tile.isLoaded()); EXPECT_TRUE(tile.isComplete()); } TEST(VectorTile, onError) { VectorTileTest test; VectorTile tile(OverscaledTileID(0, 0, 0), "source", test.tileParameters, test.tileset); tile.onError(std::make_exception_ptr(std::runtime_error("test")), 0); EXPECT_FALSE(tile.isRenderable()); EXPECT_TRUE(tile.isLoaded()); EXPECT_TRUE(tile.isComplete()); } TEST(VectorTile, Issue8542) { VectorTileTest test; VectorTile tile(OverscaledTileID(0, 0, 0), "source", test.tileParameters, test.tileset); // Query before data is set std::vector result; tile.querySourceFeatures(result, { { {"layer"} }, {} }); }