Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac648ee7 authored by Lloyd Pique's avatar Lloyd Pique
Browse files

SF: libsurfaceflinger_unittest should skip SF ctor

This reduces the cost of constructing a SurfaceFlinger instance for each
test, but it means the tests must take care to set up all internal state
that is needed for each test.

[Test execution time reduced from 6.1 to 3.1ms]

Test: libsurfaceflinger_unittest passes on Pixel XL
Bug: 74827900
Change-Id: I7eed4fd274cae521fe0f22b655cf3343cee66342
parent a618d855
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -162,7 +162,7 @@ SurfaceFlingerBE::SurfaceFlingerBE()
        mComposerSequenceId(0) {
}

SurfaceFlinger::SurfaceFlinger()
SurfaceFlinger::SurfaceFlinger(SurfaceFlinger::SkipInitializationTag)
      : BnSurfaceComposer(),
        mTransactionFlags(0),
        mTransactionPending(false),
@@ -194,7 +194,9 @@ SurfaceFlinger::SurfaceFlinger()
        mNumLayers(0),
        mVrFlingerRequestsDisplay(false),
        mMainThreadId(std::this_thread::get_id()),
        mCreateBufferQueue(&BufferQueue::createBufferQueue) {
        mCreateBufferQueue(&BufferQueue::createBufferQueue) {}

SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
    ALOGI("SurfaceFlinger is starting");

    vsyncPhaseOffsetNs = getInt64< ISurfaceFlingerConfigs,
+3 −0
Original line number Diff line number Diff line
@@ -265,6 +265,9 @@ public:
        return "SurfaceFlinger";
    }

    struct SkipInitializationTag {};
    static constexpr SkipInitializationTag SkipInitialization;
    explicit SurfaceFlinger(SkipInitializationTag) ANDROID_API;
    SurfaceFlinger() ANDROID_API;

    // must be called before clients can connect
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ public:
        auto& mutableConfigs() { return this->mConfigs; }
    };

    sp<SurfaceFlinger> mFlinger = new SurfaceFlinger();
    sp<SurfaceFlinger> mFlinger = new SurfaceFlinger(SurfaceFlinger::SkipInitialization);
};

} // namespace android