meter_provider_test.cc 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <gtest/gtest.h>
  4. #include "opentelemetry/metrics/meter_provider.h"
  5. #include "opentelemetry/metrics/noop.h"
  6. #include "opentelemetry/metrics/provider.h"
  7. #include "opentelemetry/nostd/shared_ptr.h"
  8. using opentelemetry::metrics::MeterProvider;
  9. using opentelemetry::metrics::NoopMeterProvider;
  10. using opentelemetry::metrics::Provider;
  11. TEST(Provider, GetMeterProviderDefault)
  12. {
  13. auto tf = Provider::GetMeterProvider();
  14. EXPECT_NE(nullptr, tf);
  15. }
  16. TEST(Provider, SetMeterProvider)
  17. {
  18. auto tf = opentelemetry::nostd::shared_ptr<MeterProvider>(new NoopMeterProvider());
  19. Provider::SetMeterProvider(tf);
  20. ASSERT_EQ(tf, Provider::GetMeterProvider());
  21. }
  22. TEST(Provider, MultipleMeterProviders)
  23. {
  24. auto tf = opentelemetry::nostd::shared_ptr<MeterProvider>(new NoopMeterProvider());
  25. Provider::SetMeterProvider(tf);
  26. auto tf2 = opentelemetry::nostd::shared_ptr<MeterProvider>(new NoopMeterProvider());
  27. Provider::SetMeterProvider(tf2);
  28. ASSERT_NE(Provider::GetMeterProvider(), tf);
  29. }