Index: tools/ipc_fuzzer/fuzzer/fuzzer.cc |
diff --git a/tools/ipc_fuzzer/fuzzer/fuzzer.cc b/tools/ipc_fuzzer/fuzzer/fuzzer.cc |
index 9e57c514360486349ecd5e7a7939a0cc5fe8c6ad..2802dd653d205807f4a403386fb4b34251865598 100644 |
--- a/tools/ipc_fuzzer/fuzzer/fuzzer.cc |
+++ b/tools/ipc_fuzzer/fuzzer/fuzzer.cc |
@@ -1764,15 +1764,26 @@ template <> |
struct FuzzTraits<ui::LatencyInfo> { |
static bool Fuzz(ui::LatencyInfo* p, Fuzzer* fuzzer) { |
// TODO(inferno): Add param traits for |latency_components|. |
- p->input_coordinates_size = static_cast<uint32>( |
+ int64 trace_id = p->trace_id(); |
+ bool terminated = p->terminated(); |
+ uint32 input_coordinates_size = static_cast<uint32>( |
RandInRange(ui::LatencyInfo::kMaxInputCoordinates + 1)); |
+ ui::LatencyInfo::InputCoordinate |
+ input_coordinates[ui::LatencyInfo::kMaxInputCoordinates]; |
if (!FuzzParamArray( |
- &p->input_coordinates[0], p->input_coordinates_size, fuzzer)) |
+ input_coordinates, input_coordinates_size, fuzzer)) |
return false; |
- if (!FuzzParam(&p->trace_id, fuzzer)) |
+ if (!FuzzParam(&trace_id, fuzzer)) |
return false; |
- if (!FuzzParam(&p->terminated, fuzzer)) |
+ if (!FuzzParam(&terminated, fuzzer)) |
return false; |
+ |
+ ui::LatencyInfo latency(trace_id, terminated); |
+ for (size_t i = 0; i < input_coordinates_size; i++) { |
+ latency.AddInputCoordinate(input_coordinates[i]); |
+ } |
+ *p = latency; |
+ |
return true; |
} |
}; |