Skip to content

Commit e8d6f32

Browse files
committed
Fix tests
1 parent b022ce5 commit e8d6f32

22 files changed

+178
-125
lines changed

appsec/src/extension/commands/request_shutdown.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ static const char *nullable _header_content_type_zend_array(
2828
static const dd_command_spec _spec = {
2929
.name = "request_shutdown",
3030
.name_len = sizeof("request_shutdown") - 1,
31-
.num_args = 4, // a map, api sec sampling key, sidecar queue id, and input_truncated
31+
.num_args =
32+
4, // a map, api sec sampling key, sidecar queue id, and input_truncated
3233
.outgoing_cb = _request_pack,
3334
.incoming_cb = dd_command_proc_resp_verd_span_data,
3435
.config_features_cb = dd_command_process_config_features_unexpected,

appsec/src/helper/client.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@ namespace dds {
2727
namespace {
2828

2929
void collect_metrics(network::request_shutdown::response &response,
30-
service &service, std::optional<engine::context> &context, const sidecar_settings &sc_settings);
30+
service &service, std::optional<engine::context> &context,
31+
const sidecar_settings &sc_settings);
3132
void collect_metrics(network::client_init::response &response, service &service,
32-
std::optional<engine::context> &context, const sidecar_settings &sc_settings);
33+
std::optional<engine::context> &context,
34+
const sidecar_settings &sc_settings);
3335

3436
template <typename M, typename... Mrest>
3537
// NOLINTNEXTLINE(google-runtime-references)
@@ -469,7 +471,7 @@ bool client::handle_command(network::request_shutdown::request &command)
469471
if (!response) {
470472
return false;
471473
}
472-
474+
473475
context_->set_input_truncated(command.input_truncated);
474476

475477
collect_metrics(*response, *service_, context_, sc_settings_);
@@ -607,7 +609,8 @@ struct request_metrics_submitter : public telemetry::telemetry_submitter {
607609

608610
template <typename Response>
609611
void collect_metrics_impl(Response &response, service &service,
610-
std::optional<engine::context> &context, const sidecar_settings &sc_settings)
612+
std::optional<engine::context> &context,
613+
const sidecar_settings &sc_settings)
611614
{
612615
request_metrics_submitter msubmitter{
613616
service, context ? context->get_input_truncated() : false};
@@ -625,12 +628,14 @@ void collect_metrics_impl(Response &response, service &service,
625628
response.metrics = std::move(msubmitter.span_metrics);
626629
}
627630
void collect_metrics(network::request_shutdown::response &response,
628-
service &service, std::optional<engine::context> &context, const sidecar_settings &sc_settings)
631+
service &service, std::optional<engine::context> &context,
632+
const sidecar_settings &sc_settings)
629633
{
630634
collect_metrics_impl(response, service, context, sc_settings);
631635
}
632636
void collect_metrics(network::client_init::response &response, service &service,
633-
std::optional<engine::context> &context, const sidecar_settings &sc_settings)
637+
std::optional<engine::context> &context,
638+
const sidecar_settings &sc_settings)
634639
{
635640
collect_metrics_impl(response, service, context, sc_settings);
636641
}

appsec/src/helper/engine.hpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,14 @@ class engine {
6868
parameter &&param, const std::string &rasp_rule = "");
6969
// NOLINTNEXTLINE(google-runtime-references)
7070
void get_metrics(telemetry::telemetry_submitter &msubmitter);
71-
[[nodiscard]] bool get_input_truncated() const { return input_truncated_; }
72-
void set_input_truncated(bool input_truncated) { input_truncated_ = input_truncated; }
71+
[[nodiscard]] bool get_input_truncated() const
72+
{
73+
return input_truncated_;
74+
}
75+
void set_input_truncated(bool input_truncated)
76+
{
77+
input_truncated_ = input_truncated;
78+
}
7379

7480
protected:
7581
std::shared_ptr<shared_state> common_;

appsec/src/helper/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ bool ensure_unique_abstract_socket(std::string_view socket_path)
9898

9999
// Try to connect to the socket. If successful, another helper is running
100100
// NOLINTNEXTLINE(android-cloexec-socket)
101-
int sock = ::socket(AF_UNIX, SOCK_STREAM, 0);
101+
int const sock = ::socket(AF_UNIX, SOCK_STREAM, 0);
102102
if (sock == -1) {
103103
SPDLOG_INFO("Failed to create test socket: errno {}", errno);
104104
return false;
@@ -114,7 +114,7 @@ bool ensure_unique_abstract_socket(std::string_view socket_path)
114114
// NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-constant-array-index)
115115
addr.sun_path[size + 1] = '\0';
116116

117-
int res = ::connect(
117+
int const res = ::connect(
118118
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
119119
sock, reinterpret_cast<struct sockaddr *>(&addr), sizeof(addr));
120120
::close(sock);

appsec/src/helper/network/proto.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,7 @@ struct request_shutdown {
305305
std::map<std::string, std::string> meta;
306306
std::map<std::string_view, double> metrics;
307307

308-
MSGPACK_DEFINE(
309-
actions, triggers, force_keep, settings, meta, metrics)
308+
MSGPACK_DEFINE(actions, triggers, force_keep, settings, meta, metrics)
310309
};
311310
};
312311

appsec/src/helper/service.cpp

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,14 @@ using ddog_sidecar_enqueue_telemetry_log_t =
3737
decltype(&ddog_sidecar_enqueue_telemetry_log);
3838
ddog_sidecar_enqueue_telemetry_log_t fn_ddog_sidecar_enqueue_telemetry_log;
3939

40-
using ddog_sidecard_enqueue_telemetry_point_t = decltype(&ddog_sidecar_enqueue_telemetry_point);
40+
using ddog_sidecard_enqueue_telemetry_point_t =
41+
decltype(&ddog_sidecar_enqueue_telemetry_point);
4142
ddog_sidecard_enqueue_telemetry_point_t fn_ddog_sidecar_enqueue_telemetry_point;
4243

43-
using ddog_sidecar_enqueue_telemetry_metric_t = decltype(&ddog_sidecar_enqueue_telemetry_metric);
44-
ddog_sidecar_enqueue_telemetry_metric_t fn_ddog_sidecar_enqueue_telemetry_metric;
44+
using ddog_sidecar_enqueue_telemetry_metric_t =
45+
decltype(&ddog_sidecar_enqueue_telemetry_metric);
46+
ddog_sidecar_enqueue_telemetry_metric_t
47+
fn_ddog_sidecar_enqueue_telemetry_metric;
4548

4649
using ddog_Error_message_t = decltype(&ddog_Error_message);
4750
ddog_Error_message_t fn_ddog_Error_message;
@@ -165,23 +168,21 @@ void service::metrics_impl::submit_log(const sidecar_settings &sc_settings,
165168

166169
void service::metrics_impl::register_metric_ffi(
167170
const sidecar_settings &sc_settings,
168-
const telemetry_settings &telemetry_settings,
169-
std::string_view name, ddog_MetricType type)
171+
const telemetry_settings &telemetry_settings, std::string_view name,
172+
ddog_MetricType type)
170173
{
171174
SPDLOG_TRACE("register_metric_ffi: name: {}, type: {}", name, type);
172175

173176
if (fn_ddog_sidecar_enqueue_telemetry_metric == nullptr) {
174-
throw std::runtime_error("Failed to resolve ddog_sidecar_enqueue_telemetry_metric");
177+
throw std::runtime_error(
178+
"Failed to resolve ddog_sidecar_enqueue_telemetry_metric");
175179
}
176180
ddog_MaybeError result = fn_ddog_sidecar_enqueue_telemetry_metric(
177181
to_ffi_string(sc_settings.session_id),
178182
to_ffi_string(sc_settings.runtime_id),
179183
to_ffi_string(telemetry_settings.service_name),
180-
to_ffi_string(telemetry_settings.env_name),
181-
to_ffi_string(name),
182-
type,
183-
DDOG_METRIC_NAMESPACE_APPSEC
184-
);
184+
to_ffi_string(telemetry_settings.env_name), to_ffi_string(name), type,
185+
DDOG_METRIC_NAMESPACE_APPSEC);
185186

186187
if (result.tag == DDOG_OPTION_ERROR_SOME_ERROR) {
187188
ddog_CharSlice const error_msg = fn_ddog_Error_message(&result.some);
@@ -193,17 +194,15 @@ void service::metrics_impl::register_metric_ffi(
193194

194195
void service::metrics_impl::submit_metric_ffi(
195196
const sidecar_settings &sc_settings,
196-
const telemetry_settings &telemetry_settings,
197-
std::string_view name,
198-
double value,
199-
std::optional<std::string> tags)
197+
const telemetry_settings &telemetry_settings, std::string_view name,
198+
double value, std::optional<std::string> tags)
200199
{
201-
SPDLOG_TRACE(
202-
"submit_metric_ffi: name: {}, value: {}, tags: {}", name,
200+
SPDLOG_TRACE("submit_metric_ffi: name: {}, value: {}, tags: {}", name,
203201
value, tags.has_value() ? tags.value() : "(none)"sv);
204202

205203
if (fn_ddog_sidecar_enqueue_telemetry_point == nullptr) {
206-
throw std::runtime_error("Failed to resolve ddog_sidecar_enqueue_telemetry_point");
204+
throw std::runtime_error(
205+
"Failed to resolve ddog_sidecar_enqueue_telemetry_point");
207206
}
208207
CharSlice tags_ffi;
209208
CharSlice *tags_ffi_ptr = nullptr;
@@ -215,11 +214,8 @@ void service::metrics_impl::submit_metric_ffi(
215214
to_ffi_string(sc_settings.session_id),
216215
to_ffi_string(sc_settings.runtime_id),
217216
to_ffi_string(telemetry_settings.service_name),
218-
to_ffi_string(telemetry_settings.env_name),
219-
to_ffi_string(name),
220-
value,
221-
tags_ffi_ptr
222-
);
217+
to_ffi_string(telemetry_settings.env_name), to_ffi_string(name), value,
218+
tags_ffi_ptr);
223219

224220
if (result.tag == DDOG_OPTION_ERROR_SOME_ERROR) {
225221
ddog_CharSlice const error_msg = fn_ddog_Error_message(&result.some);
@@ -252,7 +248,7 @@ void service::handle_worker_count_metrics(const sidecar_settings &sc_settings)
252248
auto new_st = cur_st;
253249
new_st.latest_count_sent = true;
254250

255-
bool success = num_workers_.compare_exchange_strong(
251+
bool const success = num_workers_.compare_exchange_strong(
256252
cur_st, new_st, std::memory_order_relaxed);
257253

258254
if (!success) {

appsec/src/helper/service.hpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ class service {
103103
std::move(stack_trace), std::move(tags), is_sensitive});
104104
}
105105

106-
107106
private:
108107
friend class service;
109108

@@ -299,29 +298,32 @@ class service {
299298
"remote_config.requests_before_running"sv, 1, {});
300299
}
301300
}
302-
303-
void increment_num_workers() {
301+
302+
void increment_num_workers()
303+
{
304304
auto cur = num_workers_.load(std::memory_order_relaxed);
305305
while (true) {
306306
auto new_v = num_workers_t{
307-
.latest_count_sent = false,
308-
.count = cur.count + 1};
309-
if (num_workers_.compare_exchange_weak(cur, new_v, std::memory_order_relaxed)) {
307+
.latest_count_sent = false, .count = cur.count + 1};
308+
if (num_workers_.compare_exchange_weak(
309+
cur, new_v, std::memory_order_relaxed)) {
310310
break;
311311
}
312312
}
313313
}
314-
void decrement_num_workers() {
314+
void decrement_num_workers()
315+
{
315316
auto cur = num_workers_.load(std::memory_order_relaxed);
316317
if (cur.count == 0) {
317318
SPDLOG_WARN("Attempted to decrement num_workers_ below 0");
318319
return;
319320
}
320321
while (true) {
321-
auto new_v = num_workers_t{
322-
.latest_count_sent = cur.latest_count_sent,
323-
.count = cur.count - 1};
324-
if (num_workers_.compare_exchange_weak(cur, new_v, std::memory_order_relaxed)) {
322+
auto new_v =
323+
num_workers_t{.latest_count_sent = cur.latest_count_sent,
324+
.count = cur.count - 1};
325+
if (num_workers_.compare_exchange_weak(
326+
cur, new_v, std::memory_order_relaxed)) {
325327
break;
326328
}
327329
}
@@ -339,8 +341,8 @@ class service {
339341
std::shared_ptr<metrics_impl> msubmitter_;
340342

341343
struct num_workers_t {
342-
bool latest_count_sent: 1;
343-
uint64_t count: 63;
344+
bool latest_count_sent : 1;
345+
uint64_t count : 63;
344346
constexpr bool operator==(const num_workers_t &other) const
345347
{
346348
return count == other.count &&
@@ -360,8 +362,8 @@ template <> struct fmt::formatter<ddog_MetricType> {
360362
// NOLINTNEXTLINE
361363
constexpr auto parse(fmt::format_parse_context &ctx) { return ctx.begin(); }
362364
template <typename FormatContext>
363-
auto format(
364-
ddog_MetricType type, FormatContext &ctx) const -> decltype(ctx.out())
365+
auto format(ddog_MetricType type, FormatContext &ctx) const
366+
-> decltype(ctx.out())
365367
{
366368
switch (type) {
367369
case DDOG_METRIC_TYPE_GAUGE:

appsec/src/helper/telemetry.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ struct fmt::formatter<dds::telemetry::telemetry_tags>
8282
: fmt::formatter<std::string_view> {
8383

8484
auto format(
85-
const dds::telemetry::telemetry_tags& tags, format_context &ctx) const
85+
const dds::telemetry::telemetry_tags &tags, format_context &ctx) const
8686
{
8787
return formatter<std::string_view>::format(
8888
std::string_view{tags.data_}, ctx);

appsec/tests/extension/inc/mock_helper.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,6 @@ function response_request_shutdown($message, $mergeWithEmpty = true) {
277277
false, //force_keep
278278
[],
279279
[],
280-
[],
281280
[]
282281
], $message);
283282
}

appsec/tests/extension/input_truncated_01.phpt

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,20 @@ include __DIR__ . '/inc/mock_helper.php';
1515

1616
$helper = Helper::createInitedRun([
1717
response_list(response_request_init([[['ok', []]]])),
18-
response_list(response_request_shutdown([[['ok', []]], [], false, [],
19-
[], [], ["waf.requests" => [[2.0, ""], [1.0, "a=b"]]]]))
18+
response_list(response_request_shutdown([[['ok', []]]]))
2019
]);
2120

2221
var_dump(rinit());
2322
$helper->get_commands(); // ignore
2423

2524
var_dump(rshutdown());
26-
$helper->get_commands();
25+
26+
$commands = $helper->get_commands();
27+
// Verify request_shutdown receives input_truncated=true
28+
var_dump($commands[0][1][3]);
2729

2830
?>
2931
--EXPECTF--
3032
bool(true)
31-
32-
Notice: datadog\appsec\testing\rshutdown(): Would call ddtrace_metric_register_buffer with name=waf.requests type=1 ns=3 in %s on line %d
33-
34-
Notice: datadog\appsec\testing\rshutdown(): Would call to ddtrace_metric_add_point with name=waf.requests value=2.000000 tags=input_truncated=true in %s on line %d
35-
36-
Notice: datadog\appsec\testing\rshutdown(): Would call ddtrace_metric_register_buffer with name=waf.requests type=1 ns=3 in %s on line %d
37-
38-
Notice: datadog\appsec\testing\rshutdown(): Would call to ddtrace_metric_add_point with name=waf.requests value=1.000000 tags=a=b,input_truncated=true in %s on line %d
33+
bool(true)
3934
bool(true)

0 commit comments

Comments
 (0)