From 5ba33f846129f3e6c0505b19f94634b24505e828 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Sun, 26 Apr 2026 15:16:36 +0100 Subject: config/lua: init lua config manager, use lua if available (#13817) Adds a new lua config manager, which will automatically be used if there is a lua config present. --- tests/config/lua/LuaConfigUtils.cpp | 105 ++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 tests/config/lua/LuaConfigUtils.cpp (limited to 'tests/config/lua/LuaConfigUtils.cpp') diff --git a/tests/config/lua/LuaConfigUtils.cpp b/tests/config/lua/LuaConfigUtils.cpp new file mode 100644 index 00000000..a165755e --- /dev/null +++ b/tests/config/lua/LuaConfigUtils.cpp @@ -0,0 +1,105 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace Config; +using namespace Config::Lua; + +namespace { + class CUnsupportedValue : public Values::IValue { + public: + CUnsupportedValue() : Values::IValue(0) { + m_name = "unsupported"; + m_description = "unsupported"; + } + + const std::type_info* underlying() const override { + return &typeid(void); + } + + void commence() override { + ; + } + }; +} + +TEST(ConfigLuaUtils, fromGenericValueMapsSupportedTypes) { + { + auto out = fromGenericValue(makeShared("a", "", 1)); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", 1.F)); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", true)); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", "x")); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", 0xFF000000)); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", VEC2{1, 2})); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", 5)); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", 500)); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } + { + auto out = fromGenericValue(makeShared("a", "", CHyprColor(0xFF112233))); + ASSERT_NE(out.get(), nullptr); + EXPECT_NE(dynamic_cast(out.get()), nullptr); + } +} + +TEST(ConfigLuaUtils, fromGenericValueReturnsNullForUnsupportedType) { + auto out = fromGenericValue(makeShared()); + EXPECT_EQ(out.get(), nullptr); +} + +TEST(ConfigLuaUtils, fromGenericValueCopiesRefreshBits) { + const auto REFRESH = Config::Supplementary::REFRESH_LAYOUTS | Config::Supplementary::REFRESH_WINDOW_STATES; + + auto out = fromGenericValue(makeShared("a", "", 1, Values::SIntValueOptions{.refresh = REFRESH})); + ASSERT_NE(out.get(), nullptr); + EXPECT_EQ(out->refreshBits(), REFRESH); +} -- cgit v1.2.3