Skip to content

Commit fc6e563

Browse files
committed
Add tests for Tracer
1 parent db8d879 commit fc6e563

File tree

1 file changed

+39
-4
lines changed

1 file changed

+39
-4
lines changed

sdk/test/trace/tracer_test.cc

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,11 @@
5454
#include "opentelemetry/trace/trace_state.h"
5555
#include "opentelemetry/trace/tracer.h"
5656

57+
#include <src/trace/span.h>
58+
5759
using namespace opentelemetry::sdk::trace;
5860
using namespace opentelemetry::sdk::resource;
61+
using namespace opentelemetry::sdk::instrumentationscope;
5962
using opentelemetry::common::SteadyTimestamp;
6063
using opentelemetry::common::SystemTimestamp;
6164
namespace nostd = opentelemetry::nostd;
@@ -142,15 +145,18 @@ std::shared_ptr<opentelemetry::trace::Tracer> initTracer(
142145
std::unique_ptr<SpanExporter> &&exporter,
143146
// For testing, just shove a pointer over, we'll take it over.
144147
Sampler *sampler,
145-
IdGenerator *id_generator = new RandomIdGenerator)
148+
IdGenerator *id_generator = new RandomIdGenerator,
149+
const ScopeConfigurator<TracerConfig> &tracer_configurator =
150+
TracerConfig::DefaultConfigurator())
146151
{
147152
auto processor = std::unique_ptr<SpanProcessor>(new SimpleSpanProcessor(std::move(exporter)));
148153
std::vector<std::unique_ptr<SpanProcessor>> processors;
149154
processors.push_back(std::move(processor));
150155
auto resource = Resource::Create({});
151-
auto context = std::make_shared<TracerContext>(std::move(processors), resource,
152-
std::unique_ptr<Sampler>(sampler),
153-
std::unique_ptr<IdGenerator>(id_generator));
156+
auto context = std::make_shared<TracerContext>(
157+
std::move(processors), resource, std::unique_ptr<Sampler>(sampler),
158+
std::unique_ptr<IdGenerator>(id_generator),
159+
std::make_unique<ScopeConfigurator<TracerConfig>>(tracer_configurator));
154160
return std::shared_ptr<opentelemetry::trace::Tracer>(new Tracer(context));
155161
}
156162

@@ -488,6 +494,35 @@ TEST(Tracer, SpanSetEvents)
488494
ASSERT_EQ(1, span_data_events[2].GetAttributes().size());
489495
}
490496

497+
TEST(Tracer, StartSpanWithDisabledConfig)
498+
{
499+
InMemorySpanExporter *exporter = new InMemorySpanExporter();
500+
std::shared_ptr<InMemorySpanData> span_data = exporter->GetData();
501+
ScopeConfigurator<TracerConfig> disable_tracer = [](const InstrumentationScope &) {
502+
return TracerConfig::Disabled();
503+
};
504+
auto tracer = initTracer(std::unique_ptr<SpanExporter>{exporter}, new AlwaysOnSampler(),
505+
new RandomIdGenerator(), disable_tracer);
506+
auto span = tracer->StartSpan("span 1");
507+
508+
EXPECT_NE(typeid(*span.get()), typeid(trace_api::Span));
509+
EXPECT_EQ(typeid(*span.get()), typeid(trace_api::NoopSpan));
510+
}
511+
512+
TEST(Tracer, StartSpanWithEnabledConfig)
513+
{
514+
InMemorySpanExporter *exporter = new InMemorySpanExporter();
515+
std::shared_ptr<InMemorySpanData> span_data = exporter->GetData();
516+
ScopeConfigurator<TracerConfig> enable_tracer = [](const InstrumentationScope &) {
517+
return TracerConfig::Enabled();
518+
};
519+
auto tracer = initTracer(std::unique_ptr<SpanExporter>{exporter}, new AlwaysOnSampler(),
520+
new RandomIdGenerator(), enable_tracer);
521+
auto span = tracer->StartSpan("span 1");
522+
523+
EXPECT_EQ(typeid(*span.get()), typeid(Span));
524+
}
525+
491526
TEST(Tracer, SpanSetLinks)
492527
{
493528
InMemorySpanExporter *exporter = new InMemorySpanExporter();

0 commit comments

Comments
 (0)