Add CustomDataSourceSingleInstance test
diff --git a/src/tracing/test/api_integrationtest.cc b/src/tracing/test/api_integrationtest.cc
index c709a26..f100c6d 100644
--- a/src/tracing/test/api_integrationtest.cc
+++ b/src/tracing/test/api_integrationtest.cc
@@ -283,6 +283,12 @@
 
 class CustomDataSource : public perfetto::DataSource<CustomDataSource> {};
 
+class CustomDataSourceSingleInstance
+    : public perfetto::DataSource<CustomDataSourceSingleInstance> {
+ public:
+  static constexpr bool kSupportsMultipleInstances = false;
+};
+
 class MockDataSource;
 
 // We can't easily use gmock here because instances of data sources are lazily
@@ -790,6 +796,11 @@
       dsd.set_name("CustomDataSource");
       CustomDataSource::Register(dsd);
     }
+    {
+      perfetto::DataSourceDescriptor dsd;
+      dsd.set_name("CustomDataSourceSingleInstance");
+      CustomDataSourceSingleInstance::Register(dsd);
+    }
     perfetto::TrackEvent::Register();
 
     // Make sure our data source always has a valid handle.
@@ -812,6 +823,8 @@
     perfetto::test::TracingMuxerImplInternalsForTest::
         ClearDataSourceTlsStateOnReset<CustomDataSource>();
     perfetto::test::TracingMuxerImplInternalsForTest::
+        ClearDataSourceTlsStateOnReset<CustomDataSourceSingleInstance>();
+    perfetto::test::TracingMuxerImplInternalsForTest::
         ClearDataSourceTlsStateOnReset<
             perfetto::internal::TrackEventDataSource>();
     perfetto::Tracing::ResetForTesting();
@@ -5000,6 +5013,30 @@
   EXPECT_TRUE(found_for_testing);
 }
 
+TEST_P(PerfettoApiTest, CustomDataSourceSingleInstance) {
+  perfetto::TraceConfig cfg;
+  cfg.add_buffers()->set_size_kb(1024);
+  auto* ds_cfg = cfg.add_data_sources()->mutable_config();
+  ds_cfg->set_name("CustomDataSourceSingleInstance");
+  auto* tracing_session1 = NewTrace(cfg);
+  tracing_session1->get()->StartBlocking();
+
+  auto* tracing_session2 = NewTrace(cfg);
+  tracing_session2->get()->StartBlocking();
+
+  CustomDataSourceSingleInstance::Trace(
+      [](CustomDataSourceSingleInstance::TraceContext ctx) {
+        auto packet = ctx.NewTracePacket();
+        packet->set_timestamp(4200000);
+        packet->set_for_testing()->set_str("Test String");
+      });
+  CustomDataSourceSingleInstance::Trace(
+      [](CustomDataSourceSingleInstance::TraceContext ctx) { ctx.Flush(); });
+
+  tracing_session2->get()->StopBlocking();
+  tracing_session1->get()->StopBlocking();
+}
+
 TEST_P(PerfettoApiTest, QueryServiceState) {
   class QueryTestDataSource : public perfetto::DataSource<QueryTestDataSource> {
   };