From 0afa30f0569fe1b3b0a85c57f5def4330c7631f5 Mon Sep 17 00:00:00 2001 From: yuval Lifshitz Date: Thu, 9 Jun 2022 18:57:07 +0300 Subject: [PATCH] rgw/lua: replace int64_t with "long long int" for the background table lua integer is "long long int" which works with GCC 11.2.1 (fedora 36) but fails to compile on centos8 and ubuntu focal Signed-off-by: yuval Lifshitz --- src/rgw/rgw_lua_background.cc | 14 +++++++------- src/rgw/rgw_lua_background.h | 6 +++--- src/test/rgw/test_rgw_lua.cc | 24 ++++++++++++------------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/rgw/rgw_lua_background.cc b/src/rgw/rgw_lua_background.cc index 0cad7e8f3e241..ea85193edf7c4 100644 --- a/src/rgw/rgw_lua_background.cc +++ b/src/rgw/rgw_lua_background.cc @@ -21,7 +21,7 @@ int RGWTable::increment_by(lua_State* L) { const auto index = luaL_checkstring(L, 1); // by default we increment by 1/-1 - const auto default_inc = (decrement ? -1 : 1); + const long long int default_inc = (decrement ? -1 : 1); BackgroundMapValue inc_by = default_inc; if (args == 2) { if (lua_isinteger(L, 2)) { @@ -40,12 +40,12 @@ int RGWTable::increment_by(lua_State* L) { auto& value = it->second; if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { value = std::get(value) + std::get(inc_by); - } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { - value = std::get(value) + std::get(inc_by); - } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { - value = std::get(value) + static_cast(std::get(inc_by)); - } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { - value = static_cast(std::get(value)) + std::get(inc_by); + } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { + value = std::get(value) + std::get(inc_by); + } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { + value = std::get(value) + static_cast(std::get(inc_by)); + } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { + value = static_cast(std::get(value)) + std::get(inc_by); } else { mtx.unlock(); return luaL_error(L, "can increment only numeric values"); diff --git a/src/rgw/rgw_lua_background.h b/src/rgw/rgw_lua_background.h index 7c6e6353de87c..5d7eafa39befd 100644 --- a/src/rgw/rgw_lua_background.h +++ b/src/rgw/rgw_lua_background.h @@ -13,14 +13,14 @@ namespace rgw::lua { constexpr const int INIT_EXECUTE_INTERVAL = 5; //Writeable meta table named RGW with mutex protection -using BackgroundMapValue = std::variant; +using BackgroundMapValue = std::variant; using BackgroundMap = std::unordered_map; inline void pushvalue(lua_State* L, const std::string& value) { pushstring(L, value); } -inline void pushvalue(lua_State* L, int64_t value) { +inline void pushvalue(lua_State* L, long long value) { lua_pushinteger(L, value); } @@ -111,7 +111,7 @@ struct RGWTable : EmptyMetaTable { case LUA_TNUMBER: if (lua_isinteger(L, 3)) { value = lua_tointeger(L, 3); - len = sizeof(int64_t); + len = sizeof(long long int); } else { value = lua_tonumber(L, 3); len = sizeof(double); diff --git a/src/test/rgw/test_rgw_lua.cc b/src/test/rgw/test_rgw_lua.cc index 3a2d43af2d35d..0e3214211ff92 100644 --- a/src/test/rgw/test_rgw_lua.cc +++ b/src/test/rgw/test_rgw_lua.cc @@ -875,7 +875,7 @@ TEST(TestRGWLuaBackground, TableValues) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), 42.2); EXPECT_TRUE(get_table_value(lua_background, "key4")); } @@ -894,7 +894,7 @@ TEST(TestRGWLuaBackground, TablePersist) auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); request_script = R"( RGW["key3"] = RGW["key1"] @@ -904,9 +904,9 @@ TEST(TestRGWLuaBackground, TablePersist) rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key4"), 42); + EXPECT_EQ(get_table_value(lua_background, "key4"), 42); } TEST(TestRGWLuaBackground, TableValuesFromRequest) @@ -929,7 +929,7 @@ TEST(TestRGWLuaBackground, TableValuesFromRequest) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); - EXPECT_EQ(get_table_value(lua_background, "key1"), -99); + EXPECT_EQ(get_table_value(lua_background, "key1"), -99); EXPECT_EQ(get_table_value(lua_background, "key2"), "hi"); EXPECT_EQ(get_table_value(lua_background, "key3"), -9.9); EXPECT_EQ(get_table_value(lua_background, "key4"), true); @@ -955,7 +955,7 @@ TEST(TestRGWLuaBackground, TableInvalidValue) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_NE(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "val1"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), 42.2); EXPECT_EQ(get_table_value(lua_background, "key4"), true); } @@ -977,9 +977,9 @@ TEST(TestRGWLuaBackground, TableErase) auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), "another string value"); - EXPECT_EQ(get_table_value(lua_background, "size"), 4); + EXPECT_EQ(get_table_value(lua_background, "size"), 4); request_script = R"( -- erase key1 @@ -992,9 +992,9 @@ TEST(TestRGWLuaBackground, TableErase) rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), ""); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), "another string value"); - EXPECT_EQ(get_table_value(lua_background, "size"), 3); + EXPECT_EQ(get_table_value(lua_background, "size"), 3); } TEST(TestRGWLuaBackground, TableIterate) @@ -1017,10 +1017,10 @@ TEST(TestRGWLuaBackground, TableIterate) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), 42.2); EXPECT_TRUE(get_table_value(lua_background, "key4")); - EXPECT_EQ(get_table_value(lua_background, "size"), 5); + EXPECT_EQ(get_table_value(lua_background, "size"), 5); } TEST(TestRGWLuaBackground, TableIncrement) -- 2.39.5