From 61054347f32789dd4911e4f5dda254f96f0f916d Mon Sep 17 00:00:00 2001 From: Omri Zeneva Date: Mon, 23 May 2022 11:50:05 -0400 Subject: [PATCH] test: add unit tests - added trace initialization - opentelemetry linking when needed - conditional ASSERT on SetBadAttribute, when we don't have opentelemetry (tracing sdk), we expect different result from the execute function. Signed-off-by: Omri Zeneva --- src/test/rgw/CMakeLists.txt | 4 +++ src/test/rgw/test_rgw_lua.cc | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt index e8eed91b78781..374ea0bd41527 100644 --- a/src/test/rgw/CMakeLists.txt +++ b/src/test/rgw/CMakeLists.txt @@ -16,6 +16,10 @@ if(WITH_RADOSGW_LUA_PACKAGES) list(APPEND rgw_libs Boost::filesystem) endif() +if(WITH_JAEGER) + list(APPEND rgw_libs ${jaeger_base}) +endif() + #unittest_rgw_bencode add_executable(unittest_rgw_bencode test_rgw_bencode.cc) add_ceph_unittest(unittest_rgw_bencode) diff --git a/src/test/rgw/test_rgw_lua.cc b/src/test/rgw/test_rgw_lua.cc index 86bd79250a64a..a2430313719d1 100644 --- a/src/test/rgw/test_rgw_lua.cc +++ b/src/test/rgw/test_rgw_lua.cc @@ -157,7 +157,11 @@ auto g_cct = new CephContext(CEPH_ENTITY_TYPE_CLIENT); CctCleaner cleaner(g_cct); +tracing::Tracer tracer; + #define DEFINE_REQ_STATE RGWEnv e; req_state s(g_cct, &e, 0); +#define INIT_TRACE tracer.init("test"); \ + s.trace = tracer.start_trace("test", true); TEST(TestRGWLua, EmptyScript) { @@ -849,3 +853,50 @@ TEST(TestRGWLuaBackground, MultipleStarts) EXPECT_GT(lua_background.get_table_value("hello").size(), value_len); } +TEST(TestRGWLua, TracingSetAttribute) +{ + const std::string script = R"( + Request.Trace.SetAttribute("str-attr", "value") + Request.Trace.SetAttribute("int-attr", 42) + Request.Trace.SetAttribute("double-attr", 42.5) + )"; + + DEFINE_REQ_STATE; + INIT_TRACE; + const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "put_obj", script); + ASSERT_EQ(rc, 0); +} + +TEST(TestRGWLua, TracingSetBadAttribute) +{ + const std::string script = R"( + Request.Trace.SetAttribute("attr", nil) + )"; + + DEFINE_REQ_STATE; + INIT_TRACE; + const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "put_obj", script); + #ifdef HAVE_JAEGER + ASSERT_NE(rc, 0); + #else + ASSERT_EQ(rc, 0); + #endif +} + +TEST(TestRGWLua, TracingAddEvent) +{ + const std::string script = R"( + event_attrs = {} + event_attrs["x"] = "value-x" + event_attrs[42] = 42 + event_attrs[42.5] = 42.5 + event_attrs["y"] = "value-y" + + Request.Trace.AddEvent("my_event", event_attrs) + )"; + + DEFINE_REQ_STATE; + INIT_TRACE; + const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "put_obj", script); + ASSERT_EQ(rc, 0); +} -- 2.39.5