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

Commit 6a570b60 authored by Courtney Goeltzenleuchter's avatar Courtney Goeltzenleuchter
Browse files

Use Configstore to test getWideColor function

Test: make tests in libs/gui/tests/
Test: adb sync
Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter="SurfaceTest.GetWideColorSupport"
Bug: 29940137

Change-Id: I618c300b1882d2ebd7474586d72f4d469e2d41bf
parent 585e32fa
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ cc_test {
    ],

    shared_libs: [
        "android.hardware.configstore@1.0",
        "android.hardware.configstore-utils",
        "liblog",
        "libEGL",
        "libGLESv1_CM",
@@ -34,6 +36,8 @@ cc_test {
        "libbinder",
        "libcutils",
        "libgui",
        "libhidlbase",
        "libhidltransport",
        "libui",
        "libutils",
        "libnativewindow"
+21 −11
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@

#include <gtest/gtest.h>

#include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h>
#include <binder/ProcessState.h>
#include <configstore/Utils.h>
#include <cutils/properties.h>
#include <gui/BufferItemConsumer.h>
#include <gui/IDisplayEventConnection.h>
@@ -35,6 +37,12 @@
namespace android {

using namespace std::chrono_literals;
// retrieve wide-color and hdr settings from configstore
using namespace android::hardware::configstore;
using namespace android::hardware::configstore::V1_0;

static bool hasWideColorDisplay =
        getBool<ISurfaceFlingerConfigs, &ISurfaceFlingerConfigs::hasWideColorDisplay>(false);

class FakeSurfaceComposer;
class FakeProducerFrameEventHistory;
@@ -271,17 +279,19 @@ TEST_F(SurfaceTest, GetWideColorSupport) {
    bool supported;
    surface->getWideColorSupport(&supported);

    // TODO(courtneygo): How can we know what device we are on to
    // verify that this is correct?
    char product[PROPERTY_VALUE_MAX] = "0";
    property_get("ro.build.product", product, "0");
    std::cerr << "[          ] product = " << product << std::endl;

    if (strcmp("marlin", product) == 0 || strcmp("sailfish", product) == 0) {
        ASSERT_EQ(true, supported);
    } else {
        ASSERT_EQ(false, supported);
    }
    // NOTE: This test assumes that device that supports
    // wide-color (as indicated by BoardConfig) must also
    // have a wide-color primary display.
    // That assumption allows this test to cover devices
    // that advertised a wide-color color mode without
    // actually supporting wide-color to pass this test
    // as well as the case of a device that does support
    // wide-color (via BoardConfig) and has a wide-color
    // primary display.
    // NOT covered at this time is a device that supports
    // wide color in the BoardConfig but does not support
    // a wide-color color mode on the primary display.
    ASSERT_EQ(hasWideColorDisplay, supported);
}

TEST_F(SurfaceTest, DynamicSetBufferCount) {