provider_test.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <gtest/gtest.h>
  4. #include "opentelemetry/nostd/shared_ptr.h"
  5. #include "opentelemetry/nostd/string_view.h"
  6. #include "opentelemetry/trace/provider.h"
  7. #include "opentelemetry/trace/tracer_provider.h"
  8. using opentelemetry::trace::Provider;
  9. using opentelemetry::trace::Tracer;
  10. using opentelemetry::trace::TracerProvider;
  11. namespace nostd = opentelemetry::nostd;
  12. class TestProvider : public TracerProvider
  13. {
  14. #if OPENTELEMETRY_ABI_VERSION_NO >= 2
  15. nostd::shared_ptr<Tracer> GetTracer(
  16. nostd::string_view /* name */,
  17. nostd::string_view /* version */,
  18. nostd::string_view /* schema_url */,
  19. const opentelemetry::common::KeyValueIterable * /* attributes */) noexcept override
  20. {
  21. return nostd::shared_ptr<Tracer>(nullptr);
  22. }
  23. #else
  24. nostd::shared_ptr<Tracer> GetTracer(nostd::string_view /* name */,
  25. nostd::string_view /* version */,
  26. nostd::string_view /* schema_url */) noexcept override
  27. {
  28. return nostd::shared_ptr<Tracer>(nullptr);
  29. }
  30. #endif
  31. };
  32. TEST(Provider, GetTracerProviderDefault)
  33. {
  34. auto tf = Provider::GetTracerProvider();
  35. EXPECT_NE(nullptr, tf);
  36. }
  37. TEST(Provider, SetTracerProvider)
  38. {
  39. auto tf = nostd::shared_ptr<TracerProvider>(new TestProvider());
  40. Provider::SetTracerProvider(tf);
  41. ASSERT_EQ(tf, Provider::GetTracerProvider());
  42. }