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 =