Skip to content

Commit d97aa08

Browse files
authored
Merge pull request #729 from open-telemetry/main
merged from upstream
2 parents 0fc8e9c + fb8ae6d commit d97aa08

File tree

8 files changed

+107
-11
lines changed

8 files changed

+107
-11
lines changed

.github/workflows/clang-tidy.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ jobs:
1717
matrix:
1818
include:
1919
- cmake_options: all-options-abiv1-preview
20-
warning_limit: 330
20+
warning_limit: 220
2121
- cmake_options: all-options-abiv2-preview
22-
warning_limit: 332
22+
warning_limit: 222
2323
env:
2424
CC: /usr/bin/clang-18
2525
CXX: /usr/bin/clang++-18

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,21 @@ Increment the:
5757
* [CODE HEALTH] Fix clang-tidy unnecessary value param warnings
5858
[#3931](https://github.com/open-telemetry/opentelemetry-cpp/pull/3931)
5959

60+
* [CODE HEALTH] Fix clang-tidy cppcoreguidelines-init-variables warnings
61+
[#3919](https://github.com/open-telemetry/opentelemetry-cpp/pull/3919)
62+
63+
* [CODE HEALTH] Fix clang-tidy warnings in nostd files
64+
[#3924](https://github.com/open-telemetry/opentelemetry-cpp/pull/3924)
65+
66+
* [CODE HEALTH] Fix clang-tidy performance-for-range-copy warnings
67+
[#3932](https://github.com/open-telemetry/opentelemetry-cpp/pull/3932)
68+
69+
* [CODE HEALTH] Fix clang-tidy bugprone warnings
70+
[#3933](https://github.com/open-telemetry/opentelemetry-cpp/pull/3933)
71+
72+
* [CODE HEALTH] Fix clang-tidy special-member-functions warnings in trace
73+
[#3934](https://github.com/open-telemetry/opentelemetry-cpp/pull/3934)
74+
6075
Important changes:
6176

6277
* [BUILD] Revisit EventLogger deprecation

api/include/opentelemetry/trace/default_span.h

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ namespace trace
2121
class DefaultSpan : public Span
2222
{
2323
public:
24+
~DefaultSpan() noexcept override = default;
25+
2426
// Returns an invalid span.
2527
static DefaultSpan GetInvalid() { return DefaultSpan(SpanContext::GetInvalid()); }
2628

@@ -66,8 +68,29 @@ class DefaultSpan : public Span
6668
DefaultSpan(SpanContext span_context) noexcept : span_context_(std::move(span_context)) {}
6769

6870
// movable and copiable
69-
DefaultSpan(DefaultSpan &&spn) noexcept : Span(), span_context_(spn.GetContext()) {}
70-
DefaultSpan(const DefaultSpan &spn) noexcept : Span(), span_context_(spn.GetContext()) {}
71+
DefaultSpan(const DefaultSpan &other) noexcept : span_context_(other.span_context_) {}
72+
73+
DefaultSpan &operator=(const DefaultSpan &other) noexcept
74+
{
75+
if (this == &other)
76+
{
77+
return *this;
78+
}
79+
span_context_ = other.span_context_;
80+
return *this;
81+
}
82+
83+
DefaultSpan(DefaultSpan &&other) noexcept : span_context_(std::move(other.span_context_)) {}
84+
85+
DefaultSpan &operator=(DefaultSpan &&other) noexcept
86+
{
87+
if (this == &other)
88+
{
89+
return *this;
90+
}
91+
span_context_ = std::move(other.span_context_);
92+
return *this;
93+
}
7194

7295
private:
7396
SpanContext span_context_;

api/include/opentelemetry/trace/span_context.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ class SpanContext final
5050
trace_state_(std::move(trace_state))
5151
{}
5252

53-
SpanContext(const SpanContext &ctx) = default;
54-
5553
// @returns whether this context is valid
5654
bool IsValid() const noexcept { return trace_id_.IsValid() && span_id_.IsValid(); }
5755

@@ -78,8 +76,6 @@ class SpanContext final
7876
trace_flags() == that.trace_flags();
7977
}
8078

81-
SpanContext &operator=(const SpanContext &ctx) = default;
82-
8379
bool IsRemote() const noexcept { return is_remote_; }
8480

8581
static SpanContext GetInvalid() noexcept { return SpanContext(false, false); }

api/include/opentelemetry/trace/span_context_kv_iterable.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ namespace trace
1818
class SpanContextKeyValueIterable
1919
{
2020
public:
21-
virtual ~SpanContextKeyValueIterable() = default;
21+
SpanContextKeyValueIterable() = default;
22+
virtual ~SpanContextKeyValueIterable() = default;
23+
SpanContextKeyValueIterable(const SpanContextKeyValueIterable &) = default;
24+
SpanContextKeyValueIterable &operator=(const SpanContextKeyValueIterable &) = default;
25+
SpanContextKeyValueIterable(SpanContextKeyValueIterable &&) = default;
26+
SpanContextKeyValueIterable &operator=(SpanContextKeyValueIterable &&) = default;
2227

2328
/**
2429
* Iterate over SpanContext/key-value pairs

api/include/opentelemetry/trace/tracer.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,13 @@ namespace trace
2828
class Tracer
2929
{
3030
public:
31-
virtual ~Tracer() = default;
31+
Tracer() = default;
32+
virtual ~Tracer() = default;
33+
Tracer(const Tracer &) = default;
34+
Tracer &operator=(const Tracer &) = default;
35+
Tracer(Tracer &&) = default;
36+
Tracer &operator=(Tracer &&) = default;
37+
3238
/**
3339
* Starts a span.
3440
*

api/include/opentelemetry/trace/tracer_provider.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ class Tracer;
2121
class TracerProvider
2222
{
2323
public:
24-
virtual ~TracerProvider() = default;
24+
TracerProvider() = default;
25+
virtual ~TracerProvider() = default;
26+
TracerProvider(const TracerProvider &) = default;
27+
TracerProvider &operator=(const TracerProvider &) = default;
28+
TracerProvider(TracerProvider &&) = default;
29+
TracerProvider &operator=(TracerProvider &&) = default;
2530

2631
#if OPENTELEMETRY_ABI_VERSION_NO >= 2
2732

api/test/trace/default_span_test.cc

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,50 @@ TEST(DefaultSpanTest, GetContext)
2121
DefaultSpan sp = DefaultSpan(span_context);
2222
EXPECT_EQ(span_context, sp.GetContext());
2323
}
24+
25+
TEST(DefaultSpanTest, CopyConstructor)
26+
{
27+
SpanContext span_context = SpanContext(true, false);
28+
DefaultSpan original(span_context);
29+
30+
DefaultSpan copied(original);
31+
32+
EXPECT_EQ(span_context, copied.GetContext());
33+
}
34+
35+
TEST(DefaultSpanTest, MoveConstructor)
36+
{
37+
SpanContext span_context = SpanContext(true, false);
38+
DefaultSpan original(span_context);
39+
40+
DefaultSpan moved(std::move(original));
41+
42+
EXPECT_EQ(span_context, moved.GetContext());
43+
}
44+
45+
TEST(DefaultSpanTest, CopyAssignment)
46+
{
47+
SpanContext source_context = SpanContext(true, false);
48+
DefaultSpan source(source_context);
49+
DefaultSpan target(SpanContext(false, false));
50+
51+
target = source;
52+
EXPECT_EQ(source_context, target.GetContext());
53+
54+
target = target;
55+
EXPECT_EQ(source_context, target.GetContext());
56+
}
57+
58+
TEST(DefaultSpanTest, MoveAssignment)
59+
{
60+
SpanContext source_context = SpanContext(true, false);
61+
DefaultSpan source(source_context);
62+
DefaultSpan target(SpanContext(false, false));
63+
64+
target = std::move(source);
65+
EXPECT_EQ(source_context, target.GetContext());
66+
67+
target = std::move(target);
68+
EXPECT_EQ(source_context, target.GetContext());
69+
}
2470
} // namespace

0 commit comments

Comments
 (0)