trace_flags_test.cc 834 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <gtest/gtest.h>
  4. #include <stdint.h>
  5. #include <string>
  6. #include "opentelemetry/nostd/span.h"
  7. #include "opentelemetry/trace/trace_flags.h"
  8. namespace
  9. {
  10. using opentelemetry::trace::TraceFlags;
  11. std::string Hex(const TraceFlags &flags)
  12. {
  13. char buf[2];
  14. flags.ToLowerBase16(buf);
  15. return std::string(buf, sizeof(buf));
  16. }
  17. TEST(TraceFlagsTest, DefaultConstruction)
  18. {
  19. TraceFlags flags;
  20. EXPECT_FALSE(flags.IsSampled());
  21. EXPECT_EQ(0, flags.flags());
  22. EXPECT_EQ("00", Hex(flags));
  23. }
  24. TEST(TraceFlagsTest, Sampled)
  25. {
  26. TraceFlags flags{TraceFlags::kIsSampled};
  27. EXPECT_TRUE(flags.IsSampled());
  28. EXPECT_EQ(1, flags.flags());
  29. EXPECT_EQ("01", Hex(flags));
  30. uint8_t buf[1];
  31. flags.CopyBytesTo(buf);
  32. EXPECT_EQ(1, buf[0]);
  33. }
  34. } // namespace