diff --git a/sdk/src/trace/tracer_provider.cc b/sdk/src/trace/tracer_provider.cc index 32144c4c6b..8f05436b4c 100644 --- a/sdk/src/trace/tracer_provider.cc +++ b/sdk/src/trace/tracer_provider.cc @@ -7,7 +7,7 @@ namespace trace { TracerProvider::TracerProvider(std::shared_ptr processor, std::shared_ptr sampler) noexcept - : processor_{processor}, tracer_(new Tracer(std::move(processor))), sampler_(sampler) + : processor_{processor}, tracer_(new Tracer(std::move(processor), sampler)), sampler_(sampler) {} opentelemetry::nostd::shared_ptr TracerProvider::GetTracer( diff --git a/sdk/test/trace/tracer_provider_test.cc b/sdk/test/trace/tracer_provider_test.cc index 399ea6d453..dca3bc3607 100644 --- a/sdk/test/trace/tracer_provider_test.cc +++ b/sdk/test/trace/tracer_provider_test.cc @@ -12,10 +12,10 @@ TEST(TracerProvider, GetTracer) { std::shared_ptr processor(new SimpleSpanProcessor(nullptr)); - TracerProvider tf(processor); - auto t1 = tf.GetTracer("test"); - auto t2 = tf.GetTracer("test"); - auto t3 = tf.GetTracer("different", "1.0.0"); + TracerProvider tp1(processor); + auto t1 = tp1.GetTracer("test"); + auto t2 = tp1.GetTracer("test"); + auto t3 = tp1.GetTracer("different", "1.0.0"); ASSERT_NE(nullptr, t1); ASSERT_NE(nullptr, t2); ASSERT_NE(nullptr, t3); @@ -25,9 +25,14 @@ TEST(TracerProvider, GetTracer) ASSERT_EQ(t1, t3); // Should be an sdk::trace::Tracer with the processor attached. - auto sdkTracer = dynamic_cast(t1.get()); - ASSERT_NE(nullptr, sdkTracer); - ASSERT_EQ(processor, sdkTracer->GetProcessor()); + auto sdkTracer1 = dynamic_cast(t1.get()); + ASSERT_NE(nullptr, sdkTracer1); + ASSERT_EQ(processor, sdkTracer1->GetProcessor()); + ASSERT_EQ("AlwaysOnSampler", sdkTracer1->GetSampler()->GetDescription()); + + TracerProvider tp2(processor, std::make_shared()); + auto sdkTracer2 = dynamic_cast(tp2.GetTracer("test").get()); + ASSERT_EQ("AlwaysOffSampler", sdkTracer2->GetSampler()->GetDescription()); } TEST(TracerProvider, GetSampler) @@ -35,9 +40,9 @@ TEST(TracerProvider, GetSampler) std::shared_ptr processor1(new SimpleSpanProcessor(nullptr)); // Create a TracerProvicer with a default AlwaysOnSampler. - TracerProvider tf1(processor1); - auto t1 = tf1.GetSampler(); - auto t2 = tf1.GetSampler(); + TracerProvider tp1(processor1); + auto t1 = tp1.GetSampler(); + auto t2 = tp1.GetSampler(); ASSERT_NE(nullptr, t1); ASSERT_NE(nullptr, t2); @@ -49,8 +54,8 @@ TEST(TracerProvider, GetSampler) // Create a TracerProvicer with a custom AlwaysOffSampler. std::shared_ptr processor2(new SimpleSpanProcessor(nullptr)); - TracerProvider tf2(processor2, std::make_shared()); - auto t3 = tf2.GetSampler(); + TracerProvider tp2(processor2, std::make_shared()); + auto t3 = tp2.GetSampler(); ASSERT_EQ("AlwaysOffSampler", t3->GetDescription()); }