]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/api/test/trace/provider_test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / api / test / trace / provider_test.cc
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3
4 #include "opentelemetry/trace/provider.h"
5 #include "opentelemetry/nostd/shared_ptr.h"
6
7 #include <gtest/gtest.h>
8
9 using opentelemetry::trace::Provider;
10 using opentelemetry::trace::Tracer;
11 using opentelemetry::trace::TracerProvider;
12
13 namespace nostd = opentelemetry::nostd;
14
15 class TestProvider : public TracerProvider
16 {
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
20 {
21 return nostd::shared_ptr<Tracer>(nullptr);
22 }
23 };
24
25 TEST(Provider, GetTracerProviderDefault)
26 {
27 auto tf = Provider::GetTracerProvider();
28 EXPECT_NE(nullptr, tf);
29 }
30
31 TEST(Provider, SetTracerProvider)
32 {
33 auto tf = nostd::shared_ptr<TracerProvider>(new TestProvider());
34 Provider::SetTracerProvider(tf);
35 ASSERT_EQ(tf, Provider::GetTracerProvider());
36 }