diff options
author | asorotsky <asorotsky@yandex-team.com> | 2023-05-24 14:42:28 +0300 |
---|---|---|
committer | asorotsky <asorotsky@yandex-team.com> | 2023-05-24 14:42:28 +0300 |
commit | 664ed7d3e32cb7b72950a29d1c7c38ce1898e7fb (patch) | |
tree | 5cf2ed543fed8f05ea957396b17428c26fd526f4 | |
parent | defaf82593c9e4beeebfb1965c2d1171680449e2 (diff) | |
download | ydb-664ed7d3e32cb7b72950a29d1c7c38ce1898e7fb.tar.gz |
add proper ut for handling remote traces; update owners;
-rw-r--r-- | library/cpp/lwtrace/trace_ut.cpp | 46 |
1 files changed, 39 insertions, 7 deletions
diff --git a/library/cpp/lwtrace/trace_ut.cpp b/library/cpp/lwtrace/trace_ut.cpp index afb2f4e53f..9a29923e28 100644 --- a/library/cpp/lwtrace/trace_ut.cpp +++ b/library/cpp/lwtrace/trace_ut.cpp @@ -717,27 +717,59 @@ Y_UNIT_TEST_SUITE(LWTraceTrace) { TManager manager(*Singleton<TProbeRegistry>(), false); TOrbit orbit; + TOrbit child; + TTraceRequest req; req.SetIsTraced(true); - manager.HandleTraceRequest(req, orbit); + bool traced = manager.HandleTraceRequest(req, orbit); + UNIT_ASSERT(traced); LWTRACK(NoParam, orbit); + + orbit.Fork(child); + LWTRACK(IntParam, orbit, 1); - LWTRACK(StringParam, orbit, "str"); + LWTRACK(IntParam, child, 2); + + LWTRACK(StringParam, orbit, "str1"); + LWTRACK(StringParam, child, "str2"); + LWTRACK(EnumParams, orbit, ValueA, EEnumClass::ValueC); LWTRACK(InstantParam, orbit, TInstant::Seconds(42)); LWTRACK(DurationParam, orbit, TDuration::MilliSeconds(146)); LWTRACK(ProtoEnum, orbit, OT_EQ); LWTRACK(IntIntParams, orbit, 1, 2); - TTraceResponse resp; - auto& r = *resp.MutableTrace(); - orbit.Serialize(0, r); + orbit.Join(child); + + TTraceResponse resp1; + auto& r1 = *resp1.MutableTrace(); + orbit.Serialize(0, r1); + + UNIT_ASSERT_VALUES_EQUAL(r1.EventsSize(), 12); + + TOrbit other; + traced = manager.HandleTraceRequest(req, other); + UNIT_ASSERT(traced); - TOrbit orbit1; UNIT_ASSERT_VALUES_EQUAL( - manager.HandleTraceResponse(resp, manager.GetProbesMap(), orbit1).IsSuccess, + manager.HandleTraceResponse(resp1, manager.GetProbesMap(), other).IsSuccess, true); + + TTraceResponse resp2; + auto& r2 = *resp2.MutableTrace(); + other.Serialize(0, r2); + UNIT_ASSERT_VALUES_EQUAL(r2.EventsSize(), 12); + + TString proto1; + bool parsed = NProtoBuf::TextFormat::PrintToString(resp1, &proto1); + UNIT_ASSERT(parsed); + + TString proto2; + parsed = NProtoBuf::TextFormat::PrintToString(resp2, &proto2); + UNIT_ASSERT(parsed); + + UNIT_ASSERT_VALUES_EQUAL(proto1, proto2); } Y_UNIT_TEST(TrackForkJoin) { |