SF: Refactor Scheduler mock injection
Factor out TestableScheduler setup to TestableSurfaceFlinger,
and instantiate a VSyncModulator, since the std::optional may
be dereferenced in tests.
Bug: 123530318
Test: libsurfaceflinger_unittest
Change-Id: Ic7c95024e63d861c5c5c53e4973995a4fd83a7d8
diff --git a/services/surfaceflinger/Scheduler/Scheduler.h b/services/surfaceflinger/Scheduler/Scheduler.h
index 0d9d7aa..5905ff6 100644
--- a/services/surfaceflinger/Scheduler/Scheduler.h
+++ b/services/surfaceflinger/Scheduler/Scheduler.h
@@ -204,6 +204,10 @@
enum class TimerState { Reset, Expired };
enum class TouchState { Inactive, Active };
+ // Used by tests to inject mocks.
+ Scheduler(std::unique_ptr<DispSync>, std::unique_ptr<EventControlThread>,
+ const scheduler::RefreshRateConfigs&);
+
// Creates a connection on the given EventThread and forwards the given callbacks.
sp<EventThreadConnection> createConnectionInternal(EventThread*, ResyncCallback&&,
ISurfaceComposer::ConfigChanged);