perfetto: add end to end benchmarking

Bug: 74380167
Change-Id: I448d72492e9a2aaa1123188f38b79492d4be6851
diff --git a/test/fake_producer.h b/test/fake_producer.h
index edc0643..8dd1d51 100644
--- a/test/fake_producer.h
+++ b/test/fake_producer.h
@@ -18,12 +18,14 @@
 #define TEST_FAKE_PRODUCER_H_
 
 #include <memory>
+#include <random>
 #include <string>
 
+#include "perfetto/base/thread_checker.h"
 #include "perfetto/tracing/core/data_source_descriptor.h"
 #include "perfetto/tracing/core/producer.h"
+#include "perfetto/tracing/core/trace_config.h"
 #include "perfetto/tracing/ipc/producer_ipc_client.h"
-
 #include "src/base/test/test_task_runner.h"
 
 namespace perfetto {
@@ -35,7 +37,11 @@
 
   void Connect(const char* socket_name,
                base::TaskRunner* task_runner,
-               std::function<void()> data_produced_callback);
+               std::function<void()> on_create_data_source_instance);
+
+  // Produces a batch of events (as configured in the DataSourceConfig) and
+  // posts a callback when the service acknowledges the commit.
+  void ProduceEventBatch(std::function<void()> callback);
 
   // Producer implementation.
   void OnConnect() override;
@@ -49,12 +55,15 @@
  private:
   void Shutdown();
 
+  base::ThreadChecker thread_checker_;
+  base::TaskRunner* task_runner_ = nullptr;
   std::string name_;
   DataSourceID id_ = 0;
-
+  std::minstd_rand0 rnd_engine_;
+  size_t message_count_ = 0;
+  std::function<void()> on_create_data_source_instance_;
   std::unique_ptr<Service::ProducerEndpoint> endpoint_;
-  base::TaskRunner* task_runner_ = nullptr;
-  std::function<void()> data_produced_callback_;
+  std::unique_ptr<TraceWriter> trace_writer_;
 };
 
 }  // namespace perfetto