diff options
Diffstat (limited to 'usb/aidl/vts/VtsAidlUsbTargetTest.cpp')
-rw-r--r-- | usb/aidl/vts/VtsAidlUsbTargetTest.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/usb/aidl/vts/VtsAidlUsbTargetTest.cpp b/usb/aidl/vts/VtsAidlUsbTargetTest.cpp index bab5a3af59..ed3bd6e7db 100644 --- a/usb/aidl/vts/VtsAidlUsbTargetTest.cpp +++ b/usb/aidl/vts/VtsAidlUsbTargetTest.cpp @@ -112,6 +112,17 @@ class UsbAidlTest : public testing::TestWithParam<std::string> { return ScopedAStatus::ok(); } + // Callback method for the status of enableUsbData operation + ScopedAStatus notifyEnableUsbDataWhileDockedStatus(const string& /*portName*/, + Status /*retval*/, + int64_t transactionId) override { + parent_.last_transactionId = transactionId; + parent_.usb_last_cookie = cookie; + parent_.enable_usb_data_while_docked_done = true; + parent_.notify(); + return ScopedAStatus::ok(); + } + // Callback method for the status of enableContaminantPresenceDetection ScopedAStatus notifyContaminantEnabledStatus(const string& /*portName*/, bool /*enable*/, Status /*retval*/, int64_t transactionId) override { @@ -206,6 +217,9 @@ class UsbAidlTest : public testing::TestWithParam<std::string> { // Flag to indicate the invocation of notifyEnableUsbDataStatus callback. bool enable_usb_data_done; + // Flag to indicate the invocation of notifyEnableUsbDataWhileDockedStatus callback. + bool enable_usb_data_while_docked_done; + // Flag to indicate the invocation of notifyLimitPowerTransferStatus callback. bool limit_power_transfer_done; @@ -424,6 +438,42 @@ TEST_P(UsbAidlTest, enableUsbData) { } /* + * Test enabling Usb data while being docked. + * Test case queries the usb ports present in device. + * If there is at least one usb port, enabling Usb data while docked + * is attempted for the port. + * The callback parameters are checked to see if transaction id + * matches. + */ +TEST_P(UsbAidlTest, enableUsbDataWhileDocked) { + ALOGI("UsbAidlTest enableUsbDataWhileDocked 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); + + if (!usb_last_port_status.portName.empty()) { + ALOGI("portname:%s", usb_last_port_status.portName.c_str()); + enable_usb_data_while_docked_done = false; + transactionId = rand() % 10000; + const auto& ret = usb->enableUsbDataWhileDocked(usb_last_port_status.portName, transactionId); + ASSERT_TRUE(ret.isOk()); + + std::cv_status waitStatus = wait(); + while (waitStatus == std::cv_status::no_timeout && + enable_usb_data_while_docked_done == false) + waitStatus = wait(); + + EXPECT_EQ(std::cv_status::no_timeout, waitStatus); + EXPECT_EQ(2, usb_last_cookie); + EXPECT_EQ(transactionId, last_transactionId); + } + ALOGI("UsbAidlTest enableUsbDataWhileDocked end"); +} + +/* * Test enabling Usb data of the port. * Test case queries the usb ports present in device. * If there is at least one usb port, relaxing limit power transfer |