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

Commit c5429c8d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Skip tests in DvrDisplayManagerTest test case for boot.vr devices."

parents 21976c31 51ecd25f
Loading
Loading
Loading
Loading
+35 −44
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ namespace dvr {

namespace {

using ::testing::Test;

DvrSurfaceAttribute MakeAttribute(DvrSurfaceAttributeKey key, nullptr_t) {
  DvrSurfaceAttribute attribute;
  attribute.key = key;
@@ -141,6 +143,23 @@ Status<UniqueDvrWriteBufferQueue> CreateSurfaceQueue(
    return {UniqueDvrWriteBufferQueue(queue)};
}

Status<std::vector<uint8_t>> GetConfigData(int config_type) {
  uint8_t* data = nullptr;
  size_t data_size = 0;
  int error = dvrConfigurationDataGet(config_type, &data, &data_size);
  if (error < 0) {
    return ErrorStatus(-error);
  }

  if (!data || data_size == 0) {
    return ErrorStatus(EINVAL);
  }
  std::vector<uint8_t> data_result(data, data + data_size);
  dvrConfigurationDataDestroy(data);
  std::string s(data, data + data_size);
  return {std::move(data_result)};
}

class TestDisplayManager {
 public:
  TestDisplayManager(UniqueDvrDisplayManager display_manager,
@@ -275,23 +294,6 @@ class TestDisplayManager {
    return {std::move(queue_ids)};
  }

  Status<std::vector<uint8_t>> GetConfigData(int config_type) {
    uint8_t* data = nullptr;
    size_t data_size = 0;
    int error = dvrConfigurationDataGet(config_type, &data, &data_size);
    if (error < 0) {
      return ErrorStatus(-error);
    }

    if (!data || data_size == 0) {
      return ErrorStatus(EINVAL);
    }
    std::vector<uint8_t> data_result(data, data + data_size);
    dvrConfigurationDataDestroy(data);
    std::string s(data, data + data_size);
    return {std::move(data_result)};
  }

 private:
  UniqueDvrDisplayManager display_manager_;
  UniqueDvrSurfaceState surface_state_;
@@ -303,9 +305,17 @@ class TestDisplayManager {
  void operator=(const TestDisplayManager&) = delete;
};

class DvrDisplayManagerTest : public ::testing::Test {
class DvrDisplayManagerTest : public Test {
 protected:
  void SetUp() override {
    // dvr display manager test doesn't apply to standalone vr devices because
    // tests cannot create display manager client on these devices.
    if (property_get_bool("ro.boot.vr", false)) {
      GTEST_SKIP()
          << "All tests in DvrDisplayManagerTest test case are skipped "
             "because the device boot to VR.";
    }

    int ret;
    DvrDisplayManager* display_manager;
    DvrSurfaceState* surface_state;
@@ -429,7 +439,7 @@ testing::AssertionResult StatusPred(const char* status_expression,
#if 0
// Verify utility predicate/macro functionality. This section is commented out
// because it is designed to fail in some cases to validate the helpers.
TEST_F(DvrDisplayManagerTest, ExpectVoid) {
TEST_F(Test, ExpectVoid) {
  Status<void> status_error{ErrorStatus{EINVAL}};
  Status<void> status_ok{};

@@ -444,7 +454,7 @@ TEST_F(DvrDisplayManagerTest, ExpectVoid) {
  EXPECT_STATUS_ERROR_VALUE(ENOMEM, status_ok);
}

TEST_F(DvrDisplayManagerTest, ExpectInt) {
TEST_F(Test, ExpectInt) {
  Status<int> status_error{ErrorStatus{EINVAL}};
  Status<int> status_ok{10};

@@ -480,11 +490,6 @@ TEST_F(DvrDisplayManagerTest, ExpectInt) {
#endif

TEST_F(DvrDisplayManagerTest, SurfaceCreateEvent) {
  // This test doesn't apply to standalone vr devices.
  if (property_get_bool("ro.boot.vr", false)) {
    return;
  }

  // Get surface state and verify there are no surfaces.
  ASSERT_STATUS_OK(manager_->UpdateSurfaceState());
  ASSERT_STATUS_EQ(0u, manager_->GetSurfaceCount());
@@ -524,11 +529,6 @@ TEST_F(DvrDisplayManagerTest, SurfaceCreateEvent) {
}

TEST_F(DvrDisplayManagerTest, SurfaceAttributeEvent) {
  // This test doesn't apply to standalone vr devices.
  if (property_get_bool("ro.boot.vr", false)) {
    return;
  }

  // Get surface state and verify there are no surfaces.
  ASSERT_STATUS_OK(manager_->UpdateSurfaceState());
  ASSERT_STATUS_EQ(0u, manager_->GetSurfaceCount());
@@ -768,11 +768,6 @@ TEST_F(DvrDisplayManagerTest, SurfaceAttributeTypes) {
}

TEST_F(DvrDisplayManagerTest, SurfaceQueueEvent) {
  // This test doesn't apply to standalone vr devices.
  if (property_get_bool("ro.boot.vr", false)) {
    return;
  }

  // Create an application surface.
  auto surface_status = CreateApplicationSurface();
  ASSERT_STATUS_OK(surface_status);
@@ -841,11 +836,6 @@ TEST_F(DvrDisplayManagerTest, SurfaceQueueEvent) {
}

TEST_F(DvrDisplayManagerTest, MultiLayerBufferQueue) {
  // This test doesn't apply to standalone vr devices.
  if (property_get_bool("ro.boot.vr", false)) {
    return;
  }

  // Create an application surface.
  auto surface_status = CreateApplicationSurface();
  ASSERT_STATUS_OK(surface_status);
@@ -884,16 +874,17 @@ TEST_F(DvrDisplayManagerTest, MultiLayerBufferQueue) {
  dvrWriteBufferDestroy(buffer);
}

TEST_F(DvrDisplayManagerTest, ConfigurationData) {
  // TODO(hendrikw): Move this out of the display manager tests.
  auto data1 = manager_->GetConfigData(-1);
TEST_F(Test, ConfigurationData) {
  // TODO(hendrikw): Move this test and GetConfigData helper function out of the
  // display manager tests.
  auto data1 = GetConfigData(-1);
  ASSERT_STATUS_ERROR(data1);

  const char kDvrLensMetricsProperty[] = "ro.dvr.lens_metrics";

  // This should be run on devices with and without built in metrics.
  bool has_metric = !base::GetProperty(kDvrLensMetricsProperty, "").empty();
  auto data2 = manager_->GetConfigData(DVR_CONFIGURATION_DATA_LENS_METRICS);
  auto data2 = GetConfigData(DVR_CONFIGURATION_DATA_LENS_METRICS);
  if (has_metric) {
    ASSERT_STATUS_OK(data2);
    ASSERT_NE(0u, data2.get().size());