1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
4 #include "opentelemetry/trace/provider.h"
5 #include "opentelemetry/nostd/shared_ptr.h"
7 #include <gtest/gtest.h>
9 using opentelemetry::trace::Provider
;
10 using opentelemetry::trace::Tracer
;
11 using opentelemetry::trace::TracerProvider
;
13 namespace nostd
= opentelemetry::nostd
;
15 class TestProvider
: public TracerProvider
17 nostd::shared_ptr
<Tracer
> GetTracer(nostd::string_view library_name
,
18 nostd::string_view library_version
,
19 nostd::string_view schema_url
) noexcept override
21 return nostd::shared_ptr
<Tracer
>(nullptr);
25 TEST(Provider
, GetTracerProviderDefault
)
27 auto tf
= Provider::GetTracerProvider();
28 EXPECT_NE(nullptr, tf
);
31 TEST(Provider
, SetTracerProvider
)
33 auto tf
= nostd::shared_ptr
<TracerProvider
>(new TestProvider());
34 Provider::SetTracerProvider(tf
);
35 ASSERT_EQ(tf
, Provider::GetTracerProvider());