diff options
-rw-r--r-- | next/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | test/platform/settings.test.cpp | 48 | ||||
-rw-r--r-- | test/test-files.json | 1 |
3 files changed, 50 insertions, 0 deletions
diff --git a/next/test/CMakeLists.txt b/next/test/CMakeLists.txt index a9814aa033..0dde4bd219 100644 --- a/next/test/CMakeLists.txt +++ b/next/test/CMakeLists.txt @@ -22,6 +22,7 @@ add_library( ${MBGL_ROOT}/test/math/clamp.test.cpp ${MBGL_ROOT}/test/math/minmax.test.cpp ${MBGL_ROOT}/test/math/wrap.test.cpp + ${MBGL_ROOT}/test/platform/settings.test.cpp ${MBGL_ROOT}/test/programs/symbol_program.test.cpp ${MBGL_ROOT}/test/renderer/backend_scope.test.cpp ${MBGL_ROOT}/test/renderer/image_manager.test.cpp diff --git a/test/platform/settings.test.cpp b/test/platform/settings.test.cpp new file mode 100644 index 0000000000..46a8fc7ef9 --- /dev/null +++ b/test/platform/settings.test.cpp @@ -0,0 +1,48 @@ +#include <gtest/gtest.h> +#include <mbgl/platform/settings.hpp> + +using namespace mbgl; +using namespace mbgl::platform; + +TEST(Settings, SetAndGet) { + using Value = mapbox::base::Value; + using Object = mapbox::base::ValueObject; + + auto& settings = Settings::getInstance(); + auto value = settings.get(EXPERIMENTAL_THREAD_PRIORITY_WORKER); + EXPECT_TRUE(value.is<mapbox::base::NullValue>()); + + Value lowPrioValue{19.0}; + settings.set(EXPERIMENTAL_THREAD_PRIORITY_WORKER, lowPrioValue); + auto threadPriority = settings.get(EXPERIMENTAL_THREAD_PRIORITY_WORKER); + EXPECT_EQ(lowPrioValue, threadPriority); + EXPECT_EQ(lowPrioValue, settings.get("mapbox_thread_priority_worker")); + + Value networkPrioValue{-20.0}; + Value databasePrioValue{-10.0}; + Object multipleValues{{EXPERIMENTAL_THREAD_PRIORITY_DATABASE, databasePrioValue}, + {EXPERIMENTAL_THREAD_PRIORITY_NETWORK, networkPrioValue}}; + settings.set(std::move(multipleValues)); + + std::vector<std::string> keys{EXPERIMENTAL_THREAD_PRIORITY_WORKER, + EXPERIMENTAL_THREAD_PRIORITY_DATABASE, + EXPERIMENTAL_THREAD_PRIORITY_NETWORK, + EXPERIMENTAL_THREAD_PRIORITY_FILE}; + + auto object = settings.get(keys); + + Object values{{EXPERIMENTAL_THREAD_PRIORITY_WORKER, lowPrioValue}, + {EXPERIMENTAL_THREAD_PRIORITY_DATABASE, databasePrioValue}, + {EXPERIMENTAL_THREAD_PRIORITY_NETWORK, networkPrioValue}, + {EXPERIMENTAL_THREAD_PRIORITY_FILE, Value{}}}; + + EXPECT_EQ(values, object); + + values = Object{{EXPERIMENTAL_THREAD_PRIORITY_WORKER, Value{}}, + {EXPERIMENTAL_THREAD_PRIORITY_DATABASE, Value{}}, + {EXPERIMENTAL_THREAD_PRIORITY_NETWORK, Value{}}, + {EXPERIMENTAL_THREAD_PRIORITY_FILE, Value{}}}; + + settings.set(values); + EXPECT_EQ(values, settings.get(keys)); +} diff --git a/test/test-files.json b/test/test-files.json index dbf81f031b..1c70565de8 100644 --- a/test/test-files.json +++ b/test/test-files.json @@ -23,6 +23,7 @@ "test/math/clamp.test.cpp", "test/math/minmax.test.cpp", "test/math/wrap.test.cpp", + "test/platform/settings.test.cpp", "test/programs/symbol_program.test.cpp", "test/renderer/backend_scope.test.cpp", "test/renderer/image_manager.test.cpp", |