summaryrefslogtreecommitdiff
path: root/usb/aidl/vts/VtsAidlUsbTargetTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'usb/aidl/vts/VtsAidlUsbTargetTest.cpp')
-rw-r--r--usb/aidl/vts/VtsAidlUsbTargetTest.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/usb/aidl/vts/VtsAidlUsbTargetTest.cpp b/usb/aidl/vts/VtsAidlUsbTargetTest.cpp
index c4ec8a4e83..d87f1f4741 100644
--- a/usb/aidl/vts/VtsAidlUsbTargetTest.cpp
+++ b/usb/aidl/vts/VtsAidlUsbTargetTest.cpp
@@ -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;
@@ -281,6 +282,36 @@ TEST_P(UsbAidlTest, queryPortStatus) {
}
/*
+ * 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
* name which is expected to fail.