Coverage Report

Created: 2024-09-19 09:45

/proc/self/cwd/test/mocks/tracing/mocks.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include <string>
4
#include <vector>
5
6
#include "envoy/tracing/trace_driver.h"
7
#include "envoy/tracing/tracer.h"
8
#include "envoy/tracing/tracer_manager.h"
9
10
#include "gmock/gmock.h"
11
12
namespace Envoy {
13
namespace Tracing {
14
15
class MockConfig : public Config {
16
public:
17
  MockConfig();
18
  ~MockConfig() override;
19
20
  MOCK_METHOD(OperationName, operationName, (), (const));
21
  MOCK_METHOD(const CustomTagMap*, customTags, (), (const));
22
  MOCK_METHOD(bool, verbose, (), (const));
23
  MOCK_METHOD(uint32_t, maxPathTagLength, (), (const));
24
  MOCK_METHOD(bool, spawnUpstreamSpan, (), (const));
25
26
  OperationName operation_name_{OperationName::Ingress};
27
  CustomTagMap custom_tags_;
28
  bool verbose_{false};
29
  bool spawn_upstream_span_{false};
30
};
31
32
class MockSpan : public Span {
33
public:
34
  MockSpan();
35
  ~MockSpan() override;
36
37
  MOCK_METHOD(void, setOperation, (absl::string_view operation));
38
  MOCK_METHOD(void, setTag, (absl::string_view name, absl::string_view value));
39
  MOCK_METHOD(void, log, (SystemTime timestamp, const std::string& event));
40
  MOCK_METHOD(void, finishSpan, ());
41
  MOCK_METHOD(void, injectContext,
42
              (Tracing::TraceContext & request_headers, const Tracing::UpstreamContext& upstream));
43
  MOCK_METHOD(void, setSampled, (const bool sampled));
44
  MOCK_METHOD(void, setBaggage, (absl::string_view key, absl::string_view value));
45
  MOCK_METHOD(std::string, getBaggage, (absl::string_view key));
46
  MOCK_METHOD(std::string, getTraceId, (), (const));
47
  MOCK_METHOD(std::string, getSpanId, (), (const));
48
49
  SpanPtr spawnChild(const Config& config, const std::string& name,
50
0
                     SystemTime start_time) override {
51
0
    return SpanPtr{spawnChild_(config, name, start_time)};
52
0
  }
53
54
  MOCK_METHOD(Span*, spawnChild_,
55
              (const Config& config, const std::string& name, SystemTime start_time));
56
};
57
58
class MockTracer : public Tracer {
59
public:
60
  MockTracer();
61
  ~MockTracer() override;
62
63
  SpanPtr startSpan(const Config& config, TraceContext& trace_context,
64
                    const StreamInfo::StreamInfo& stream_info,
65
0
                    Tracing::Decision tracing_decision) override {
66
0
    return SpanPtr{startSpan_(config, trace_context, stream_info, tracing_decision)};
67
0
  }
68
69
  MOCK_METHOD(Span*, startSpan_,
70
              (const Config& config, TraceContext& trace_context,
71
               const StreamInfo::StreamInfo& stream_info, Tracing::Decision tracing_decision));
72
};
73
74
class MockDriver : public Driver {
75
public:
76
  MockDriver();
77
  ~MockDriver() override;
78
79
  SpanPtr startSpan(const Config& config, TraceContext& trace_context,
80
                    const StreamInfo::StreamInfo& stream_info, const std::string& operation_name,
81
0
                    Tracing::Decision tracing_decision) override {
82
0
    return SpanPtr{
83
0
        startSpan_(config, trace_context, stream_info, operation_name, tracing_decision)};
84
0
  }
85
86
  MOCK_METHOD(Span*, startSpan_,
87
              (const Config& config, TraceContext& trace_context,
88
               const StreamInfo::StreamInfo& stream_info, const std::string& operation_name,
89
               Tracing::Decision tracing_decision));
90
};
91
92
class MockTracerManager : public TracerManager {
93
public:
94
  MockTracerManager();
95
  ~MockTracerManager() override;
96
97
  MOCK_METHOD(TracerSharedPtr, getOrCreateTracer, (const envoy::config::trace::v3::Tracing_Http*));
98
};
99
100
} // namespace Tracing
101
} // namespace Envoy