12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright The OpenTelemetry Authors
- // SPDX-License-Identifier: Apache-2.0
- #include <gtest/gtest.h>
- #include <string>
- #include "opentelemetry/context/context_value.h"
- #include "opentelemetry/nostd/shared_ptr.h"
- #include "opentelemetry/trace/noop.h"
- #include "opentelemetry/trace/span.h"
- #include "opentelemetry/trace/span_context.h"
- #include "opentelemetry/trace/tracer.h"
- namespace trace_api = opentelemetry::trace;
- namespace nostd = opentelemetry::nostd;
- namespace context = opentelemetry::context;
- TEST(TracerTest, GetCurrentSpan)
- {
- std::unique_ptr<trace_api::Tracer> tracer(new trace_api::NoopTracer());
- nostd::shared_ptr<trace_api::Span> span_first(new trace_api::NoopSpan(nullptr));
- nostd::shared_ptr<trace_api::Span> span_second(new trace_api::NoopSpan(nullptr));
- auto current = tracer->GetCurrentSpan();
- ASSERT_FALSE(current->GetContext().IsValid());
- {
- auto scope_first = tracer->WithActiveSpan(span_first);
- current = tracer->GetCurrentSpan();
- ASSERT_EQ(current, span_first);
- {
- auto scope_second = tracer->WithActiveSpan(span_second);
- current = tracer->GetCurrentSpan();
- ASSERT_EQ(current, span_second);
- }
- current = tracer->GetCurrentSpan();
- ASSERT_EQ(current, span_first);
- }
- current = tracer->GetCurrentSpan();
- ASSERT_FALSE(current->GetContext().IsValid());
- }
|