]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/api/test/trace/span_id_test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / api / test / trace / span_id_test.cc
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3
4 #include "opentelemetry/trace/span_id.h"
5
6 #include <cstring>
7 #include <string>
8
9 #include <gtest/gtest.h>
10
11 namespace
12 {
13
14 using opentelemetry::trace::SpanId;
15
16 std::string Hex(const opentelemetry::trace::SpanId &span)
17 {
18 char buf[16];
19 span.ToLowerBase16(buf);
20 return std::string(buf, sizeof(buf));
21 }
22
23 TEST(SpanIdTest, DefaultConstruction)
24 {
25 SpanId id;
26 EXPECT_FALSE(id.IsValid());
27 EXPECT_EQ("0000000000000000", Hex(id));
28 }
29
30 TEST(SpanIdTest, ValidId)
31 {
32 constexpr uint8_t buf[] = {1, 2, 3, 4, 5, 6, 7, 8};
33 SpanId id(buf);
34 EXPECT_TRUE(id.IsValid());
35 EXPECT_EQ("0102030405060708", Hex(id));
36 EXPECT_NE(SpanId(), id);
37 EXPECT_EQ(SpanId(buf), id);
38 }
39
40 TEST(SpanIdTest, LowercaseBase16)
41 {
42 constexpr uint8_t buf[] = {1, 2, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff};
43 SpanId id(buf);
44 EXPECT_TRUE(id.IsValid());
45 EXPECT_EQ("0102aabbccddeeff", Hex(id));
46 EXPECT_NE(SpanId(), id);
47 EXPECT_EQ(SpanId(buf), id);
48 }
49
50 TEST(SpanIdTest, CopyBytesTo)
51 {
52 constexpr uint8_t src[] = {1, 2, 3, 4, 5, 6, 7, 8};
53 SpanId id(src);
54 uint8_t buf[8];
55 id.CopyBytesTo(buf);
56 EXPECT_TRUE(memcmp(src, buf, 8) == 0);
57 }
58 } // namespace