From 5789faf11ae2a740927bce599a209883a78b113e Mon Sep 17 00:00:00 2001 From: Alexander Shalamov Date: Thu, 30 Jan 2020 10:57:45 +0200 Subject: [PATCH] [core] Add unit test for global settings object --- next/test/CMakeLists.txt | 1 + test/platform/settings.test.cpp | 48 +++++++++++++++++++++++++++++++++ test/test-files.json | 1 + 3 files changed, 50 insertions(+) create mode 100644 test/platform/settings.test.cpp diff --git a/next/test/CMakeLists.txt b/next/test/CMakeLists.txt index a9814aa03..0dde4bd21 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 000000000..46a8fc7ef --- /dev/null +++ b/test/platform/settings.test.cpp @@ -0,0 +1,48 @@ +#include +#include + +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()); + + 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 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 dbf81f031..1c70565de 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",