]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | // Copyright The OpenTelemetry Authors |
2 | // SPDX-License-Identifier: Apache-2.0 | |
3 | ||
4 | #include "opentelemetry/trace/trace_id.h" | |
5 | ||
6 | #include <cstring> | |
7 | #include <string> | |
8 | ||
9 | #include <gtest/gtest.h> | |
10 | ||
11 | namespace | |
12 | { | |
13 | ||
14 | using opentelemetry::trace::TraceId; | |
15 | ||
16 | std::string Hex(const opentelemetry::trace::TraceId &trace) | |
17 | { | |
18 | char buf[32]; | |
19 | trace.ToLowerBase16(buf); | |
20 | return std::string(buf, sizeof(buf)); | |
21 | } | |
22 | ||
23 | TEST(TraceIdTest, DefaultConstruction) | |
24 | { | |
25 | TraceId id; | |
26 | EXPECT_FALSE(id.IsValid()); | |
27 | EXPECT_EQ("00000000000000000000000000000000", Hex(id)); | |
28 | } | |
29 | ||
30 | TEST(TraceIdTest, ValidId) | |
31 | { | |
32 | constexpr uint8_t buf[] = {1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1}; | |
33 | TraceId id(buf); | |
34 | EXPECT_TRUE(id.IsValid()); | |
35 | EXPECT_EQ("01020304050607080807060504030201", Hex(id)); | |
36 | EXPECT_NE(TraceId(), id); | |
37 | EXPECT_EQ(TraceId(buf), id); | |
38 | } | |
39 | ||
40 | TEST(TraceIdTest, LowercaseBase16) | |
41 | { | |
42 | constexpr uint8_t buf[] = {1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}; | |
43 | TraceId id(buf); | |
44 | EXPECT_TRUE(id.IsValid()); | |
45 | EXPECT_EQ("01020304050607080807aabbccddeeff", Hex(id)); | |
46 | EXPECT_NE(TraceId(), id); | |
47 | EXPECT_EQ(TraceId(buf), id); | |
48 | } | |
49 | ||
50 | TEST(TraceIdTest, CopyBytesTo) | |
51 | { | |
52 | constexpr uint8_t src[] = {1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1}; | |
53 | TraceId id(src); | |
54 | uint8_t buf[TraceId::kSize]; | |
55 | id.CopyBytesTo(buf); | |
56 | EXPECT_TRUE(memcmp(src, buf, sizeof(buf)) == 0); | |
57 | } | |
58 | } // namespace |