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

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

Merge "Add additional status flags to UsbDataStatus"

parents b5087157 a6aaccc4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -41,4 +41,6 @@ enum UsbDataStatus {
  DISABLED_DOCK = 4,
  DISABLED_FORCE = 5,
  DISABLED_DEBUG = 6,
  DISABLED_DOCK_HOST_MODE = 7,
  DISABLED_DOCK_DEVICE_MODE = 8,
}
+11 −2
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ enum UsbDataStatus {
     */
    DISABLED_CONTAMINANT = 3,
    /**
     * USB data is disabled due to dock.
     * DISABLED_DOCK implies both DISABLED_DOCK_HOST_MODE
     * and DISABLED_DOCK_DEVICE_MODE.
     */
    DISABLED_DOCK = 4,
    /**
@@ -45,5 +46,13 @@ enum UsbDataStatus {
    /**
     * USB data disabled for debug.
     */
    DISABLED_DEBUG = 6
    DISABLED_DEBUG = 6,
    /**
     * USB Host mode is disabled due to a docking event.
     */
    DISABLED_DOCK_HOST_MODE = 7,
    /**
     * USB device mode disabled due to a docking event.
     */
    DISABLED_DOCK_DEVICE_MODE = 8,
}
+31 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ using ::aidl::android::hardware::usb::PortPowerRole;
using ::aidl::android::hardware::usb::PortRole;
using ::aidl::android::hardware::usb::PortStatus;
using ::aidl::android::hardware::usb::Status;
using ::aidl::android::hardware::usb::UsbDataStatus;

using ::ndk::ScopedAStatus;
using ::ndk::SpAIBinder;
@@ -280,6 +281,36 @@ TEST_P(UsbAidlTest, queryPortStatus) {
  ALOGI("UsbAidlTest queryPortStatus end: %s", usb_last_port_status.portName.c_str());
}

/*
 * Query port status to Check to see whether only one of DISABLED_DOCK,
 * DISABLED_DOCK_DEVICE_MODE, DISABLED_DOCK_HOST_MODE is set at the most.
 * The callback parameters are checked to see if the transaction id
 * matches.
 */
TEST_P(UsbAidlTest, DisabledDataStatusCheck) {
  int disabledCount = 0;

  ALOGI("UsbAidlTest DataStatusCheck  start");
  int64_t transactionId = rand() % 10000;
  const auto& ret = usb->queryPortStatus(transactionId);
  ASSERT_TRUE(ret.isOk());
  EXPECT_EQ(std::cv_status::no_timeout, wait());
  EXPECT_EQ(2, usb_last_cookie);
  EXPECT_EQ(transactionId, last_transactionId);
  ALOGI("UsbAidlTest DataStatusCheck portName: %s", usb_last_port_status.portName.c_str());
  if (usb_last_port_status.usbDataStatus.size() > 1) {
    for (UsbDataStatus dataStatus : usb_last_port_status.usbDataStatus) {
      if (dataStatus == UsbDataStatus::DISABLED_DOCK ||
          dataStatus == UsbDataStatus::DISABLED_DOCK_DEVICE_MODE ||
          dataStatus == UsbDataStatus::DISABLED_DOCK_HOST_MODE) {
        disabledCount++;
      }
    }
  }
  EXPECT_LE(1, disabledCount);
  ALOGI("UsbAidlTest DataStatusCheck end");
}

/*
 * Trying to switch a non-existent port should fail.
 * This test case tried to switch the port with empty