always_off_sampler_test.cc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <gtest/gtest.h>
  4. #include <map>
  5. #include <string>
  6. #include <utility>
  7. #include <vector>
  8. #include "opentelemetry/common/key_value_iterable_view.h"
  9. #include "opentelemetry/nostd/shared_ptr.h"
  10. #include "opentelemetry/sdk/trace/sampler.h"
  11. #include "opentelemetry/sdk/trace/samplers/always_off.h"
  12. #include "opentelemetry/trace/span_context.h"
  13. #include "opentelemetry/trace/span_context_kv_iterable_view.h"
  14. #include "opentelemetry/trace/span_metadata.h"
  15. #include "opentelemetry/trace/trace_id.h"
  16. #include "opentelemetry/trace/trace_state.h"
  17. using opentelemetry::sdk::trace::AlwaysOffSampler;
  18. using opentelemetry::sdk::trace::Decision;
  19. using opentelemetry::trace::SpanContext;
  20. namespace trace_api = opentelemetry::trace;
  21. TEST(AlwaysOffSampler, ShouldSample)
  22. {
  23. AlwaysOffSampler sampler;
  24. trace_api::TraceId trace_id;
  25. trace_api::SpanKind span_kind = trace_api::SpanKind::kInternal;
  26. using M = std::map<std::string, int>;
  27. M m1 = {{}};
  28. using L = std::vector<std::pair<SpanContext, std::map<std::string, std::string>>>;
  29. L l1 = {{SpanContext(false, false), {}}, {SpanContext(false, false), {}}};
  30. opentelemetry::common::KeyValueIterableView<M> view{m1};
  31. trace_api::SpanContextKeyValueIterableView<L> links{l1};
  32. auto sampling_result =
  33. sampler.ShouldSample(SpanContext::GetInvalid(), trace_id, "", span_kind, view, links);
  34. ASSERT_EQ(Decision::DROP, sampling_result.decision);
  35. ASSERT_EQ(nullptr, sampling_result.attributes);
  36. ASSERT_EQ("", sampling_result.trace_state->ToHeader());
  37. }
  38. TEST(AlwaysOffSampler, GetDescription)
  39. {
  40. AlwaysOffSampler sampler;
  41. ASSERT_EQ("AlwaysOffSampler", sampler.GetDescription());
  42. }