]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/lua: replace int64_t with "long long int" for the background table 46568/head
authoryuval Lifshitz <ylifshit@redhat.com>
Thu, 9 Jun 2022 15:57:07 +0000 (18:57 +0300)
committeryuval Lifshitz <ylifshit@redhat.com>
Thu, 9 Jun 2022 18:43:51 +0000 (21:43 +0300)
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 <ylifshit@redhat.com>
src/rgw/rgw_lua_background.cc
src/rgw/rgw_lua_background.h
src/test/rgw/test_rgw_lua.cc

index 0cad7e8f3e24102442310144cb2d5f089dbc813c..ea85193edf7c4a7a66a6857fc93ae3b8a11a71f7 100644 (file)
@@ -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<double>(value) && std::holds_alternative<double>(inc_by)) {
       value = std::get<double>(value) + std::get<double>(inc_by);
-    } else if (std::holds_alternative<int64_t>(value) && std::holds_alternative<int64_t>(inc_by)) {
-      value = std::get<int64_t>(value) + std::get<int64_t>(inc_by);
-    } else if (std::holds_alternative<double>(value) && std::holds_alternative<int64_t>(inc_by)) {
-      value = std::get<double>(value) + static_cast<double>(std::get<int64_t>(inc_by));
-    } else if (std::holds_alternative<int64_t>(value) && std::holds_alternative<double>(inc_by)) {
-      value = static_cast<double>(std::get<int64_t>(value)) + std::get<double>(inc_by);
+    } else if (std::holds_alternative<long long int>(value) && std::holds_alternative<long long int>(inc_by)) {
+      value = std::get<long long int>(value) + std::get<long long int>(inc_by);
+    } else if (std::holds_alternative<double>(value) && std::holds_alternative<long long int>(inc_by)) {
+      value = std::get<double>(value) + static_cast<double>(std::get<long long int>(inc_by));
+    } else if (std::holds_alternative<long long int>(value) && std::holds_alternative<double>(inc_by)) {
+      value = static_cast<double>(std::get<long long int>(value)) + std::get<double>(inc_by);
     } else {
       mtx.unlock();
       return luaL_error(L, "can increment only numeric values");
index 7c6e6353de87caabb4f6c16b6d7558f26af2b060..5d7eafa39befdb33a8ed55312f280a30724ae48d 100644 (file)
@@ -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<std::string, int64_t, double, bool>;
+using BackgroundMapValue = std::variant<std::string, long long int, double, bool>;
 using BackgroundMap  = std::unordered_map<std::string, BackgroundMapValue>;
 
 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);
index 3a2d43af2d35de942c45d8daf37563e748972565..0e3214211ff92e08ed598c393989096d0fa71eac 100644 (file)
@@ -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<std::string>(lua_background, "key1"), "string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key2"), 42);
   EXPECT_EQ(get_table_value<double>(lua_background, "key3"), 42.2);
   EXPECT_TRUE(get_table_value<bool>(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<std::string>(lua_background, "key1"), "string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(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<std::string>(lua_background, "key1"), "string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key2"), 42);
   EXPECT_EQ(get_table_value<std::string>(lua_background, "key3"), "string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key4"), 42);
+  EXPECT_EQ(get_table_value<long long int>(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<int64_t>(lua_background, "key1"), -99);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key1"), -99);
   EXPECT_EQ(get_table_value<std::string>(lua_background, "key2"), "hi");
   EXPECT_EQ(get_table_value<double>(lua_background, "key3"), -9.9);
   EXPECT_EQ(get_table_value<bool>(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<std::string>(lua_background, "key1"), "val1");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key2"), 42);
   EXPECT_EQ(get_table_value<double>(lua_background, "key3"), 42.2);
   EXPECT_EQ(get_table_value<bool>(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<std::string>(lua_background, "key1"), "string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key2"), 42);
   EXPECT_EQ(get_table_value<std::string>(lua_background, "key3"), "another string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "size"), 4);
+  EXPECT_EQ(get_table_value<long long int>(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<std::string>(lua_background, "key1"), "");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key2"), 42);
   EXPECT_EQ(get_table_value<std::string>(lua_background, "key3"), "another string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "size"), 3);
+  EXPECT_EQ(get_table_value<long long int>(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<std::string>(lua_background, "key1"), "string value");
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "key2"), 42);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "key2"), 42);
   EXPECT_EQ(get_table_value<double>(lua_background, "key3"), 42.2);
   EXPECT_TRUE(get_table_value<bool>(lua_background, "key4"));
-  EXPECT_EQ(get_table_value<int64_t>(lua_background, "size"), 5);
+  EXPECT_EQ(get_table_value<long long int>(lua_background, "size"), 5);
 }
 
 TEST(TestRGWLuaBackground, TableIncrement)