Create temporary file name for producer and consumer socket.

This is so we can run multiple instances of the fuzzer in parallel.

Bug: 69150303
Change-Id: Ia002ba44dc5902058bee80756a094bc451e5b9b3
diff --git a/test/end_to_end_shared_memory_fuzzer.cc b/test/end_to_end_shared_memory_fuzzer.cc
index 22902d3..e3b645c 100644
--- a/test/end_to_end_shared_memory_fuzzer.cc
+++ b/test/end_to_end_shared_memory_fuzzer.cc
@@ -35,12 +35,12 @@
 #include "test/fake_consumer.h"
 #include "test/task_runner_thread.h"
 
-#define PRODUCER_SOCKET "/tmp/perfetto-producer"
-#define CONSUMER_SOCKET "/tmp/perfetto-consumer"
-
 namespace perfetto {
 namespace shm_fuzz {
 
+static const char* kProducerSocket = tempnam("/tmp", "perfetto-producer");
+static const char* kConsumerSocket = tempnam("/tmp", "perfetto-consumer");
+
 // Fake producer writing a protozero message of data into shared memory
 // buffer, followed by a sentinel message to signal completion to the
 // consumer.
@@ -101,7 +101,7 @@
   void Initialize(base::TaskRunner* task_runner) override {
     producer_.reset(new FakeProducer("android.perfetto.FakeProducer", data_,
                                      size_, consumer_));
-    producer_->Connect(PRODUCER_SOCKET, task_runner);
+    producer_->Connect(kProducerSocket, task_runner);
   }
 
  private:
@@ -117,9 +117,9 @@
   ~ServiceDelegate() override = default;
   void Initialize(base::TaskRunner* task_runner) override {
     svc_ = ServiceIPCHost::CreateInstance(task_runner);
-    unlink(PRODUCER_SOCKET);
-    unlink(CONSUMER_SOCKET);
-    svc_->Start(PRODUCER_SOCKET, CONSUMER_SOCKET);
+    unlink(kProducerSocket);
+    unlink(kConsumerSocket);
+    svc_->Start(kProducerSocket, kConsumerSocket);
   }
 
  private:
@@ -155,7 +155,7 @@
     }
   };
   FakeConsumer consumer(trace_config, std::move(function), &task_runner);
-  consumer.Connect(CONSUMER_SOCKET);
+  consumer.Connect(kConsumerSocket);
 
   TaskRunnerThread producer_thread;
   producer_thread.Start(std::unique_ptr<FakeProducerDelegate>(