Add lockdown mode.

Bug: 73709863
Change-Id: I7f4eb122d85299d32546694195e0461bb9b47a09
diff --git a/src/tracing/core/service_impl_unittest.cc b/src/tracing/core/service_impl_unittest.cc
index 7c9f0a4..043eae2 100644
--- a/src/tracing/core/service_impl_unittest.cc
+++ b/src/tracing/core/service_impl_unittest.cc
@@ -174,6 +174,49 @@
   Mock::VerifyAndClearExpectations(&mock_consumer);
 }
 
+TEST_F(ServiceImplTest, LockdownMode) {
+  MockConsumer mock_consumer;
+  EXPECT_CALL(mock_consumer, OnConnect());
+  std::unique_ptr<Service::ConsumerEndpoint> consumer_endpoint =
+      svc->ConnectConsumer(&mock_consumer);
+
+  TraceConfig trace_config;
+  trace_config.set_lockdown_mode(
+      TraceConfig::LockdownModeOperation::LOCKDOWN_SET);
+  consumer_endpoint->EnableTracing(trace_config);
+  task_runner.RunUntilIdle();
+
+  InSequence seq;
+
+  MockProducer mock_producer;
+  std::unique_ptr<Service::ProducerEndpoint> producer_endpoint =
+      svc->ConnectProducer(&mock_producer, geteuid() + 1 /* uid */);
+
+  MockProducer mock_producer_sameuid;
+  std::unique_ptr<Service::ProducerEndpoint> producer_endpoint_sameuid =
+      svc->ConnectProducer(&mock_producer_sameuid, geteuid() /* uid */);
+
+  EXPECT_CALL(mock_producer, OnConnect()).Times(0);
+  EXPECT_CALL(mock_producer_sameuid, OnConnect());
+  task_runner.RunUntilIdle();
+
+  Mock::VerifyAndClearExpectations(&mock_producer);
+
+  consumer_endpoint->DisableTracing();
+  task_runner.RunUntilIdle();
+
+  trace_config.set_lockdown_mode(
+      TraceConfig::LockdownModeOperation::LOCKDOWN_CLEAR);
+  consumer_endpoint->EnableTracing(trace_config);
+  task_runner.RunUntilIdle();
+
+  EXPECT_CALL(mock_producer, OnConnect());
+  producer_endpoint_sameuid =
+      svc->ConnectProducer(&mock_producer, geteuid() + 1);
+
+  task_runner.RunUntilIdle();
+}
+
 TEST_F(ServiceImplTest, DisconnectConsumerWhileTracing) {
   MockProducer mock_producer;
   std::unique_ptr<Service::ProducerEndpoint> producer_endpoint =