Use new TraceBuffer and send patches over IPC
This CL wires up the TraceBuffer introduced by
the previous CLs (the TraceBuffeZ -> R will happen
in a rename-only follow-up). Also plugs in the
logic that sends the patches over IPC when a
chunk is returned.
Bug: 73612642
Change-Id: Ib7bf80bb067d0b8dc721a9d797a1f5edf24cc4b0
diff --git a/test/end_to_end_shared_memory_fuzzer.cc b/test/end_to_end_shared_memory_fuzzer.cc
index e3b645c..454f3c0 100644
--- a/test/end_to_end_shared_memory_fuzzer.cc
+++ b/test/end_to_end_shared_memory_fuzzer.cc
@@ -68,16 +68,22 @@
void CreateDataSourceInstance(
DataSourceInstanceID,
const DataSourceConfig& source_config) override {
- auto trace_writer = endpoint_->CreateTraceWriter(
- static_cast<BufferID>(source_config.target_buffer()));
-
- auto packet = trace_writer->NewTracePacket();
- packet->stream_writer_->WriteBytes(data_, size_);
- packet->Finalize();
-
- auto end_packet = trace_writer->NewTracePacket();
- end_packet->set_for_testing()->set_str("end");
- end_packet->Finalize();
+ // The block is to destroy |packet| and |trace_writer| in order. Destroying
+ // the |trace_writer| will cause a flush of the completed packets.
+ {
+ auto trace_writer = endpoint_->CreateTraceWriter(
+ static_cast<BufferID>(source_config.target_buffer()));
+ auto packet = trace_writer->NewTracePacket();
+ packet->stream_writer_->WriteBytes(data_, size_);
+ packet->Finalize();
+ }
+ {
+ auto trace_writer = endpoint_->CreateTraceWriter(
+ static_cast<BufferID>(source_config.target_buffer()));
+ auto end_packet = trace_writer->NewTracePacket();
+ end_packet->set_for_testing()->set_str("end");
+ end_packet->Finalize();
+ }
consumer_->BusyWaitReadBuffers();
}
@@ -160,7 +166,6 @@
TaskRunnerThread producer_thread;
producer_thread.Start(std::unique_ptr<FakeProducerDelegate>(
new FakeProducerDelegate(data, size, &consumer)));
-
task_runner.RunUntilCheckpoint("no.more.packets");
return 0;
}