From ce6b705a50be0690b9ffee819869d14e166e2cd2 Mon Sep 17 00:00:00 2001 From: Damien MEHALA Date: Sat, 15 Feb 2025 18:56:43 +0100 Subject: [PATCH 1/3] chore(msvc): fix compilation warnings Changes: - Treat warnings as error in CI builds for MSVC. --- .circleci/config.yml | 2 +- src/datadog/string_util.cpp | 6 +-- src/datadog/w3c_propagation.cpp | 2 +- test/CMakeLists.txt | 7 +++ test/mocks/collectors.h | 2 +- test/mocks/loggers.h | 6 +-- test/remote_config/test_remote_config.cpp | 18 ++++---- test/system-tests/utils.h | 2 +- test/test.cpp | 24 ---------- test/test.h | 12 ----- test/test_span.cpp | 28 ++++++------ test/test_span_sampler.cpp | 56 ++++++++++++----------- test/test_trace_sampler.cpp | 4 +- test/test_trace_segment.cpp | 15 +++--- test/test_tracer.cpp | 21 +++------ test/test_tracer_config.cpp | 41 ++++++++--------- test/test_tracer_telemetry.cpp | 10 ++-- 17 files changed, 111 insertions(+), 145 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 337bcb7b..9e9b1972 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -116,7 +116,7 @@ jobs: name: Building command: | & 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\Launch-VsDevShell.ps1' -arch << parameters.arch >> - cmake -B build -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -DDD_TRACE_STATIC_CRT=1 -DDD_TRACE_BUILD_TESTING=1 -G Ninja . + cmake -B build -DCMAKE_COMPILE_WARNING_AS_ERROR=1 -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -DDD_TRACE_STATIC_CRT=1 -DDD_TRACE_BUILD_TESTING=1 -G Ninja . cmake --build build -j $env:MAKE_JOB_COUNT -v - run: name: Testing diff --git a/src/datadog/string_util.cpp b/src/datadog/string_util.cpp index c60a97a5..0b3fe510 100644 --- a/src/datadog/string_util.cpp +++ b/src/datadog/string_util.cpp @@ -31,14 +31,14 @@ std::string join(const Sequence& elements, StringView separator, void to_lower(std::string& text) { std::transform(text.begin(), text.end(), text.begin(), - [](unsigned char ch) { return std::tolower(ch); }); + [](auto c) { return (char)std::tolower(c); }); } std::string to_lower(StringView sv) { std::string s; s.reserve(sv.size()); std::transform(sv.begin(), sv.end(), std::back_inserter(s), - [](char c) { return std::tolower(c); }); + [](auto c) { return (char)std::tolower(c); }); return s; } @@ -47,7 +47,7 @@ std::string to_upper(StringView sv) { std::string s; s.reserve(sv.size()); std::transform(sv.begin(), sv.end(), std::back_inserter(s), - [](char c) { return std::toupper(c); }); + [](auto c) { return (char)std::toupper(c); }); return s; } diff --git a/src/datadog/w3c_propagation.cpp b/src/datadog/w3c_propagation.cpp index cda7f7e5..244b923e 100644 --- a/src/datadog/w3c_propagation.cpp +++ b/src/datadog/w3c_propagation.cpp @@ -111,7 +111,7 @@ Optional extract_traceparent(ExtractedData& result, parse_uint64(StringView(traceparent.data() + beg, 2), 16); if (maybe_trace_flags.if_error()) return "malformed_traceflags"; - result.sampling_priority = *maybe_trace_flags & 0x01; + result.sampling_priority = static_cast(*maybe_trace_flags & 0x01); return nullopt; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0c99080c..aec6b6ff 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -52,6 +52,13 @@ target_include_directories(tests ${CMAKE_SOURCE_DIR}/include/datadog ) +# Enable Catch2 std stringification +# +target_compile_definitions(tests + PUBLIC + CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS +) + target_link_libraries(tests PRIVATE # TODO: Remove dependency on libcurl diff --git a/test/mocks/collectors.h b/test/mocks/collectors.h index 3cdf50dc..c2f8768a 100644 --- a/test/mocks/collectors.h +++ b/test/mocks/collectors.h @@ -61,7 +61,7 @@ struct MockCollectorWithResponse : public MockCollector { }; struct PriorityCountingCollector : public Collector { - std::map sampling_priority_count; + std::map sampling_priority_count; Expected send(std::vector>&& spans, const std::shared_ptr&) override { diff --git a/test/mocks/loggers.h b/test/mocks/loggers.h index 016a90a2..dad54352 100644 --- a/test/mocks/loggers.h +++ b/test/mocks/loggers.h @@ -78,11 +78,11 @@ struct MockLogger : public Logger { entries.push_back(Entry{Entry::DD_ERROR, std::string(message)}); } - int error_count() const { return count(Entry::DD_ERROR); } + auto error_count() const { return count(Entry::DD_ERROR); } - int startup_count() const { return count(Entry::STARTUP); } + auto startup_count() const { return count(Entry::STARTUP); } - int count(Entry::Kind kind) const { + size_t count(Entry::Kind kind) const { std::lock_guard lock{mutex}; return std::count_if( entries.begin(), entries.end(), diff --git a/test/remote_config/test_remote_config.cpp b/test/remote_config/test_remote_config.cpp index 7f3a962d..533d12cd 100644 --- a/test/remote_config/test_remote_config.cpp +++ b/test/remote_config/test_remote_config.cpp @@ -357,14 +357,14 @@ REMOTE_CONFIG_TEST("response processing") { ] })"; - const auto response_json = + const auto new_response_json = nlohmann::json::parse(/* input = */ new_rc_response, /* parser_callback = */ nullptr, /* allow_exceptions = */ false); - REQUIRE(!response_json.is_discarded()); + REQUIRE(!new_response_json.is_discarded()); - rc.process_response(response_json); + rc.process_response(new_response_json); CHECK(tracing_listener->count_on_update == 2); CHECK(tracing_listener->count_on_revert == 0); @@ -398,14 +398,14 @@ REMOTE_CONFIG_TEST("response processing") { ] })"; - const auto response_json = + const auto new_response_json = nlohmann::json::parse(/* input = */ rc_partial_revert_response, /* parser_callback = */ nullptr, /* allow_exceptions = */ false); - REQUIRE(!response_json.is_discarded()); + REQUIRE(!new_response_json.is_discarded()); - rc.process_response(response_json); + rc.process_response(new_response_json); CHECK(tracing_listener->count_on_update == 1); CHECK(tracing_listener->count_on_revert == 1); @@ -422,14 +422,14 @@ REMOTE_CONFIG_TEST("response processing") { "target_files": [{}] })"; - const auto response_json = + const auto new_response_json = nlohmann::json::parse(/* input = */ rc_revert_response, /* parser_callback = */ nullptr, /* allow_exceptions = */ false); - REQUIRE(!response_json.is_discarded()); + REQUIRE(!new_response_json.is_discarded()); - rc.process_response(response_json); + rc.process_response(new_response_json); CHECK(tracing_listener->count_on_update == 1); CHECK(tracing_listener->count_on_revert == 1); diff --git a/test/system-tests/utils.h b/test/system-tests/utils.h index 6a98cf37..dd4a5c84 100644 --- a/test/system-tests/utils.h +++ b/test/system-tests/utils.h @@ -12,7 +12,7 @@ namespace dd = datadog::tracing; inline std::string tolower(std::string s) { std::transform(s.begin(), s.end(), s.begin(), - [](unsigned char c) { return std::tolower(c); }); + [](auto c) { return (char)std::tolower(c); }); return s; } diff --git a/test/test.cpp b/test/test.cpp index 6c0e2dd0..8dfab06c 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1,29 +1,5 @@ #include "test.h" -namespace std { - -std::ostream& operator<<( - std::ostream& stream, - const std::pair& item) { - return stream << '{' << item.first << ", " << item.second << '}'; -} - -std::ostream& operator<<( - std::ostream& stream, - const datadog::tracing::Optional& item) { - return stream << item.value_or(""); -} - -std::ostream& operator<<(std::ostream& stream, - const std::optional& maybe) { - if (maybe) { - return stream << *maybe; - } - return stream << ""; -} - -} // namespace std - namespace datadog { namespace tracing { diff --git a/test/test.h b/test/test.h index bce5a3f6..e267d643 100644 --- a/test/test.h +++ b/test/test.h @@ -19,18 +19,6 @@ #include "catch.hpp" -namespace std { - -std::ostream& operator<<(std::ostream& stream, - const std::pair& item); - -std::ostream& operator<<(std::ostream& stream, - const std::optional& maybe); - -std::ostream& operator<<(std::ostream& stream, const std::optional& maybe); - -} // namespace std - namespace datadog { namespace tracing { diff --git a/test/test_span.cpp b/test/test_span.cpp index 3720d2f5..7ff526b0 100644 --- a/test/test_span.cpp +++ b/test/test_span.cpp @@ -67,11 +67,11 @@ TEST_CASE("set_tag") { SECTION("tags can be overwritten") { { - SpanConfig config; - config.tags = {{"color", "purple"}, - {"turtle.depth", "all the way down"}, - {"_dd.tag", "written"}}; - auto span = tracer.create_span(config); + SpanConfig span_config; + span_config.tags = {{"color", "purple"}, + {"turtle.depth", "all the way down"}, + {"_dd.tag", "written"}}; + auto span = tracer.create_span(span_config); span.set_tag("color", "green"); span.set_tag("bonus", "applied"); span.set_tag("_dd.tag", "overwritten"); @@ -119,13 +119,13 @@ TEST_CASE("lookup_tag") { } SECTION("lookup after config") { - SpanConfig config; - config.tags = { + SpanConfig span_config; + span_config.tags = { {"color", "purple"}, {"turtle.depth", "all the way down"}, {"_dd.tag", "found"}, }; - auto span = tracer.create_span(config); + auto span = tracer.create_span(span_config); REQUIRE(span.lookup_tag("color") == "purple"); REQUIRE(span.lookup_tag("turtle.depth") == "all the way down"); @@ -150,9 +150,9 @@ TEST_CASE("remove_tag") { } SECTION("after removal, lookup yields null") { - SpanConfig config; - config.tags = {{"mayfly", "carpe diem"}, {"_dd.mayfly", "carpe diem"}}; - auto span = tracer.create_span(config); + SpanConfig span_config; + span_config.tags = {{"mayfly", "carpe diem"}, {"_dd.mayfly", "carpe diem"}}; + auto span = tracer.create_span(span_config); span.set_tag("foo", "bar"); span.remove_tag("mayfly"); @@ -294,9 +294,9 @@ TEST_CASE("span duration") { SECTION("start time is adjustable") { { - SpanConfig config; - config.start = default_clock() - std::chrono::seconds(3); - auto span = tracer.create_span(config); + SpanConfig span_config; + span_config.start = default_clock() - std::chrono::seconds(3); + auto span = tracer.create_span(span_config); (void)span; } diff --git a/test/test_span_sampler.cpp b/test/test_span_sampler.cpp index 298ee72b..cab50fcf 100644 --- a/test/test_span_sampler.cpp +++ b/test/test_span_sampler.cpp @@ -103,8 +103,6 @@ SpanSamplerConfig::Rule by_name_and_tags( return rule; } -const auto x = nullopt; - } // namespace TEST_CASE("span rules matching") { @@ -121,34 +119,34 @@ TEST_CASE("span rules matching") { {"no rules → no span sampling tags", {}, {}, {}, {}, {}}, {"match by service", {by_service("testsvc")}, - {8, 1.0, x}, - {8, 1.0, x}, - {8, 1.0, x}, - {8, 1.0, x}}, + {8, 1.0, nullopt}, + {8, 1.0, nullopt}, + {8, 1.0, nullopt}, + {8, 1.0, nullopt}}, {"match by name", {by_name("sibling")}, - {x, x, x}, - {x, x, x}, - {8, 1.0, x}, - {x, x, x}}, + {nullopt, nullopt, nullopt}, + {nullopt, nullopt, nullopt}, + {8, 1.0, nullopt}, + {nullopt, nullopt, nullopt}}, {"match by resource", {by_resource("office")}, - {x, x, x}, - {8, 1.0, x}, - {x, x, x}, - {x, x, x}}, + {nullopt, nullopt, nullopt}, + {8, 1.0, nullopt}, + {nullopt, nullopt, nullopt}, + {nullopt, nullopt, nullopt}}, {"match by tag", {by_tags({{"generation", "second"}})}, - {x, x, x}, - {8, 1.0, x}, - {8, 1.0, x}, - {x, x, x}}, + {nullopt, nullopt, nullopt}, + {8, 1.0, nullopt}, + {8, 1.0, nullopt}, + {nullopt, nullopt, nullopt}}, {"match by name and tag", {by_name_and_tags("child", {{"generation", "second"}})}, - {x, x, x}, - {8, 1.0, x}, - {x, x, x}, - {x, x, x}}, + {nullopt, nullopt, nullopt}, + {8, 1.0, nullopt}, + {nullopt, nullopt, nullopt}, + {nullopt, nullopt, nullopt}}, })); TracerConfig config; @@ -221,8 +219,12 @@ TEST_CASE("span rules only on trace drop") { }; auto test_case = GENERATE(values({ - {"trace drop → span sampling tags", TestCase::DROP_TRACE, {8, 1.0, x}}, - {"trace keep → no span sampling tags", TestCase::KEEP_TRACE, {x, x, x}}, + {"trace drop → span sampling tags", + TestCase::DROP_TRACE, + {8, 1.0, nullopt}}, + {"trace keep → no span sampling tags", + TestCase::KEEP_TRACE, + {nullopt, nullopt, nullopt}}, })); CAPTURE(test_case.name); @@ -256,8 +258,8 @@ TEST_CASE("span rule sample rate") { }; auto test_case = GENERATE(values({ - {"100% → span sampling tags", 1.0, {8, 1.0, x}}, - {"0% → no span sampling tags", 0.0, {x, x, x}}, + {"100% → span sampling tags", 1.0, {8, 1.0, nullopt}}, + {"0% → no span sampling tags", 0.0, {nullopt, nullopt, nullopt}}, })); CAPTURE(test_case.name); @@ -297,7 +299,7 @@ TEST_CASE("span rule limiter") { }; auto test_case = - GENERATE(values({{"default is no limit", 1000, x, 1000}, + GENERATE(values({{"default is no limit", 1000, nullopt, 1000}, {"limiter limits", 1000, 100, 100}})); CAPTURE(test_case.name); diff --git a/test/test_trace_sampler.cpp b/test/test_trace_sampler.cpp index 10704cf9..bc38196e 100644 --- a/test/test_trace_sampler.cpp +++ b/test/test_trace_sampler.cpp @@ -66,7 +66,7 @@ TEST_CASE("trace sampling rule sample rate") { config.service = "testsvc"; config.trace_sampler.sample_rate = test_case.sample_rate; // Plenty of head room so that the limiter doesn't throttle us. - config.trace_sampler.max_per_second = num_iterations * 2; + config.trace_sampler.max_per_second = static_cast(num_iterations * 2); const auto collector = std::make_shared(); config.collector = collector; config.logger = std::make_shared(); @@ -179,7 +179,7 @@ TEST_CASE("priority sampling") { config.service = "testsvc"; config.environment = "dev"; // plenty of head room - config.trace_sampler.max_per_second = 2 * num_iterations; + config.trace_sampler.max_per_second = static_cast(2 * num_iterations); const auto collector = std::make_shared(); config.collector = collector; diff --git a/test/test_trace_segment.cpp b/test/test_trace_segment.cpp index eddaffd9..54df5031 100644 --- a/test/test_trace_segment.cpp +++ b/test/test_trace_segment.cpp @@ -327,11 +327,12 @@ TEST_CASE("TraceSegment finalization of spans") { SECTION( "agent catch-all response @100% -> agent psr tag on second trace") { - const auto collector = std::make_shared(); - collector->response + const auto collector_response = + std::make_shared(); + collector_response->response .sample_rate_by_key[CollectorResponse::key_of_default_rate] = assert_rate(1.0); - config.collector = collector; + config.collector = collector_response; auto finalized = finalize_config(config); REQUIRE(finalized); @@ -341,16 +342,16 @@ TEST_CASE("TraceSegment finalization of spans") { auto span = tracer.create_span(); (void)span; } - REQUIRE(collector->span_count() == 1); + REQUIRE(collector_response->span_count() == 1); - collector->chunks.clear(); + collector_response->chunks.clear(); // Second trace will use the rate from `collector->response`. { auto span = tracer.create_span(); (void)span; } - REQUIRE(collector->span_count() == 1); - const auto& span = collector->first_span(); + REQUIRE(collector_response->span_count() == 1); + const auto& span = collector_response->first_span(); REQUIRE(span.numeric_tags.at(tags::internal::agent_sample_rate) == 1.0); } diff --git a/test/test_tracer.cpp b/test/test_tracer.cpp index b33a4af7..2e4cf596 100644 --- a/test/test_tracer.cpp +++ b/test/test_tracer.cpp @@ -473,12 +473,12 @@ TEST_CASE("span extraction") { if (test_case.expected_error != Error::NO_SPAN_TO_EXTRACT) { auto method = "extract_or_create_span"; CAPTURE(method); - auto result = tracer.extract_span(reader); + auto result2 = tracer.extract_span(reader); if (test_case.expected_error) { - REQUIRE(!result); - REQUIRE(result.error().code == test_case.expected_error); + REQUIRE(!result2); + REQUIRE(result2.error().code == test_case.expected_error); } else { - REQUIRE(result); + REQUIRE(result2); } } } @@ -1266,13 +1266,6 @@ TEST_CASE("span extraction") { CAPTURE(test_case.dd_parent_id); CAPTURE(test_case.dd_tags); - const auto collector = std::make_shared(); - const auto logger = std::make_shared(); - - TracerConfig config; - config.collector = collector; - config.logger = logger; - config.service = "service1"; config.delegate_trace_sampling = false; std::vector extraction_styles{ PropagationStyle::DATADOG, PropagationStyle::B3, PropagationStyle::W3C}; @@ -1839,7 +1832,7 @@ TEST_CASE("_dd.is_sampling_decider") { } REQUIRE(span.service != "service1"); if (span.service == "service2" && span.name == "local_root") { - const bool made_the_decision = service3_delegation_enabled ? 0 : 1; + const size_t made_the_decision = service3_delegation_enabled ? 0 : 1; REQUIRE(span.tags.count(tags::internal::sampling_decider) == made_the_decision); REQUIRE(span.numeric_tags.count(tags::internal::sampling_priority) == @@ -1856,7 +1849,7 @@ TEST_CASE("_dd.is_sampling_decider") { } REQUIRE(span.service != "service2"); if (span.service == "service3" && span.name == "local_root") { - const bool made_the_decision = service3_delegation_enabled ? 1 : 0; + const size_t made_the_decision = service3_delegation_enabled ? 1 : 0; REQUIRE(span.tags.count(tags::internal::sampling_decider) == made_the_decision); REQUIRE(span.numeric_tags.count(tags::internal::sampling_priority) == @@ -1980,7 +1973,7 @@ TEST_CASE("sampling delegation is not an override") { REQUIRE(span2); propagation_writer.items.clear(); span2->inject(propagation_writer); - const bool expected_delegate_header = service1_delegate ? 1 : 0; + const size_t expected_delegate_header = service1_delegate ? 1 : 0; CHECK( propagation_writer.items.count("x-datadog-delegate-trace-sampling") == expected_delegate_header); diff --git a/test/test_tracer_config.cpp b/test/test_tracer_config.cpp index 44e0b3db..bc0e0016 100644 --- a/test/test_tracer_config.cpp +++ b/test/test_tracer_config.cpp @@ -40,10 +40,6 @@ using namespace datadog::tracing; namespace { -// For brevity when we're tabulating a lot of test cases with parse -// `Optional<...>` data members. -const auto x = nullopt; - // Here's an attempt at a portable secure temporary file. // There's no standard solution, and it's generally hard on Windows. class SomewhatSecureTemporaryFile : public std::fstream { @@ -288,7 +284,7 @@ TEST_CASE("TracerConfig::log_on_startup") { const Tracer tracer{*finalized}; (void)tracer; } - REQUIRE(logger->startup_count() == int(test_case.expect_startup_log)); + REQUIRE(logger->startup_count() == size_t(test_case.expect_startup_log)); } } @@ -503,23 +499,25 @@ TEST_CASE("TracerConfig::agent") { }; auto test_case = GENERATE(values({ - {"override host with default port", "dd-agent", x, x, "http", - "dd-agent:8126"}, - {"override port and host", "dd-agent", "8080", x, "http", + {"override host with default port", "dd-agent", nullopt, nullopt, + "http", "dd-agent:8126"}, + {"override port and host", "dd-agent", "8080", nullopt, "http", "dd-agent:8080"}, - {"override port with default host", x, "8080", x, "http", + {"override port with default host", nullopt, "8080", nullopt, "http", "localhost:8080"}, // A bogus port number will cause an error in the TCPClient, not // during configuration. For the purposes of configuration, any // value is accepted. - {"we don't parse port", x, "bogus", x, "http", "localhost:bogus"}, - {"URL", x, x, "http://dd-agent:8080", "http", "dd-agent:8080"}, - {"URL overrides scheme", x, x, "https://dd-agent:8080", "https", - "dd-agent:8080"}, - {"URL overrides host", "localhost", x, "http://dd-agent:8080", "http", - "dd-agent:8080"}, - {"URL overrides port", x, "8126", "http://dd-agent:8080", "http", + {"we don't parse port", nullopt, "bogus", nullopt, "http", + "localhost:bogus"}, + {"URL", nullopt, nullopt, "http://dd-agent:8080", "http", "dd-agent:8080"}, + {"URL overrides scheme", nullopt, nullopt, "https://dd-agent:8080", + "https", "dd-agent:8080"}, + {"URL overrides host", "localhost", nullopt, "http://dd-agent:8080", + "http", "dd-agent:8080"}, + {"URL overrides port", nullopt, "8126", "http://dd-agent:8080", + "http", "dd-agent:8080"}, {"URL overrides port and host", "localhost", "8126", "http://dd-agent:8080", "http", "dd-agent:8080"}, })); @@ -569,9 +567,9 @@ TEST_CASE("TracerConfig::trace_sampler") { REQUIRE(finalized); REQUIRE(finalized->trace_sampler.rules.size() == 1); // and the default sample_rate is 100% - const auto& rule = finalized->trace_sampler.rules.front(); - CHECK(rule.rate == 1.0); - CHECK(rule.mechanism == SamplingMechanism::RULE); + const auto& finalized_rule = finalized->trace_sampler.rules.front(); + CHECK(finalized_rule.rate == 1.0); + CHECK(finalized_rule.mechanism == SamplingMechanism::RULE); } SECTION("has to have a valid sample_rate") { @@ -878,7 +876,7 @@ TEST_CASE("TracerConfig::span_sampler") { REQUIRE(finalized->span_sampler.rules[0].sample_rate == 0.5); REQUIRE(!finalized->span_sampler.rules[0].max_per_second); REQUIRE(finalized->span_sampler.rules[1].sample_rate == 0.6); - REQUIRE(finalized->span_sampler.rules[1].max_per_second == 10); + REQUIRE(finalized->span_sampler.rules[1].max_per_second == 10.); } SECTION("DD_SPAN_SAMPLING_RULES") { @@ -999,7 +997,7 @@ TEST_CASE("TracerConfig::span_sampler") { {"max_per_second": 10, "sample_rate": 0.1} ])json"; - const EnvGuard guard{"DD_SPAN_SAMPLING_RULES", rules_json}; + const EnvGuard guard2{"DD_SPAN_SAMPLING_RULES", rules_json}; auto finalized = finalize_config(config); REQUIRE(finalized); const auto& rules = finalized->span_sampler.rules; @@ -1128,6 +1126,7 @@ TEST_CASE("TracerConfig propagation styles") { }; // brevity + static const auto x = nullopt; static const auto datadog = PropagationStyle::DATADOG, b3 = PropagationStyle::B3, none = PropagationStyle::NONE; diff --git a/test/test_tracer_telemetry.cpp b/test/test_tracer_telemetry.cpp index dfe5511e..33bc7e38 100644 --- a/test/test_tracer_telemetry.cpp +++ b/test/test_tracer_telemetry.cpp @@ -62,9 +62,9 @@ TEST_CASE("Tracer telemetry", "[telemetry]") { } SECTION("With an integration") { - TracerTelemetry tracer_telemetry{ + TracerTelemetry tracer_telemetry2{ true, clock, logger, tracer_signature, "nginx", "1.25.2"}; - auto app_started_message = tracer_telemetry.app_started({}); + auto app_started_message = tracer_telemetry2.app_started({}); auto app_started = nlohmann::json::parse(app_started_message); REQUIRE(is_valid_telemetry_payload(app_started) == true); REQUIRE(app_started["request_type"] == "message-batch"); @@ -165,9 +165,9 @@ TEST_CASE("Tracer telemetry", "[telemetry]") { for (const auto& conf : config_change_message["payload"]["configuration"]) { - auto expected_conf = expected_json.find(conf["name"]); - REQUIRE(expected_conf != expected_json.cend()); - CHECK(expected_conf->second == conf); + auto it = expected_json.find(conf["name"]); + REQUIRE(it != expected_json.cend()); + CHECK(it->second == conf); } // No update -> no configuration update From ac77ba87d81bb70c876e992f130a84b45b254720 Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Tue, 18 Feb 2025 20:08:24 +0100 Subject: [PATCH 2/3] modern CMAKE brbr --- .circleci/config.yml | 2 +- CMakePresets.json | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 CMakePresets.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 9e9b1972..c16c5f54 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -116,7 +116,7 @@ jobs: name: Building command: | & 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\Launch-VsDevShell.ps1' -arch << parameters.arch >> - cmake -B build -DCMAKE_COMPILE_WARNING_AS_ERROR=1 -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -DDD_TRACE_STATIC_CRT=1 -DDD_TRACE_BUILD_TESTING=1 -G Ninja . + cmake --preset=ci-winwdows -B build -DCMAKE_BUILD_TYPE=Debug . cmake --build build -j $env:MAKE_JOB_COUNT -v - run: name: Testing diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 00000000..60906b52 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,17 @@ +{ + "version": 8, + "$schema": "https://cmake.org/cmake/help/latest/_downloads/3e2d73bff478d88a7de0de736ba5e361/schema.json", + "configurePresets": [ + { + "name": "ci-windows", + "displayName": "CI Windows", + "generator": "Ninja", + "cacheVariables": { + "CMAKE_COMPILE_WARNING_AS_ERROR": "1", + "BUILD_SHARED_LIBS": "OFF", + "DD_TRACE_STATIC_CRT": "1", + "DD_TRACE_BUILD_TESTING": "1" + } + } + ] +} From a3366d091a48a0ee753891ab9b5c087104e23adc Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Tue, 18 Feb 2025 20:12:29 +0100 Subject: [PATCH 3/3] fix(ci): typo --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c16c5f54..892f83e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -116,7 +116,7 @@ jobs: name: Building command: | & 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\Launch-VsDevShell.ps1' -arch << parameters.arch >> - cmake --preset=ci-winwdows -B build -DCMAKE_BUILD_TYPE=Debug . + cmake --preset=ci-windows -B build -DCMAKE_BUILD_TYPE=Debug . cmake --build build -j $env:MAKE_JOB_COUNT -v - run: name: Testing