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

Commit 3c5fdad7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Convert VtsHalUsbV1_2TargetTest to parameterized gtest" into rvc-dev...

Merge "Convert VtsHalUsbV1_2TargetTest to parameterized gtest" into rvc-dev am: 60851ab6 am: 8f4c1dad am: 60f8b53c

Change-Id: If7371aaa43450ef04ffb31fed3c58101207899ab
parents 335b2a17 60f8b53c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ cc_test {
        "android.hardware.usb@1.1",
        "android.hardware.usb@1.2",
    ],
    test_suites: ["general-tests"],
    test_suites: [
        "general-tests",
        "vts",
    ],
}
+18 −32
Original line number Diff line number Diff line
@@ -22,8 +22,10 @@
#include <android/hardware/usb/1.2/types.h>

#include <VtsHalHidlTargetCallbackBase.h>
#include <VtsHalHidlTargetTestBase.h>
#include <VtsHalHidlTargetTestEnvBase.h>
#include <gtest/gtest.h>
#include <hidl/GtestPrinter.h>
#include <hidl/ServiceManagement.h>

#include <log/log.h>
#include <stdlib.h>
#include <chrono>
@@ -139,24 +141,12 @@ class UsbCallback : public ::testing::VtsHalHidlTargetCallbackBase<UsbClientCall
    };
};

// Test environment for Usb HIDL HAL.
class UsbHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
   public:
    // get the test environment singleton
    static UsbHidlEnvironment* Instance() {
        static UsbHidlEnvironment* instance = new UsbHidlEnvironment;
        return instance;
    }

    virtual void registerTestServices() override { registerTestService<IUsb>(); }
};

// The main test class for the USB hidl HAL
class UsbHidlTest : public ::testing::VtsHalHidlTargetTestBase {
class UsbHidlTest : public ::testing::TestWithParam<std::string> {
  public:
    virtual void SetUp() override {
        ALOGI(__FUNCTION__);
        usb = ::testing::VtsHalHidlTargetTestBase::getService<IUsb>();
        usb = IUsb::getService(GetParam());
        ASSERT_NE(usb, nullptr);

        usb_cb_2 = new UsbCallback(kCallbackIdentifier);
@@ -182,7 +172,7 @@ class UsbHidlTest : public ::testing::VtsHalHidlTargetTestBase {
 * Callback oject is created and registered.
 * Check to see if the hidl transaction succeeded.
 */
TEST_F(UsbHidlTest, setCallback) {
TEST_P(UsbHidlTest, setCallback) {
    usb_cb_1 = new UsbCallback(1);
    ASSERT_NE(usb_cb_1, nullptr);
    Return<void> ret = usb->setCallback(usb_cb_1);
@@ -195,7 +185,7 @@ TEST_F(UsbHidlTest, setCallback) {
 * HAL service should call notifyPortStatusChange_1_2
 * instead of notifyPortStatusChange of V1_0/V1_1 interface
 */
TEST_F(UsbHidlTest, queryPortStatus) {
TEST_P(UsbHidlTest, queryPortStatus) {
    Return<void> ret = usb->queryPortStatus();
    ASSERT_TRUE(ret.isOk());
    auto res = usb_cb_2->WaitForCallback(kCallbackNameNotifyPortStatusChange_1_2);
@@ -211,7 +201,7 @@ TEST_F(UsbHidlTest, queryPortStatus) {
 * Check if supportedContaminantProtectionModes changes across queryPortStatus
 * call.
 */
TEST_F(UsbHidlTest, checkSupportedContaminantProtectionModes) {
TEST_P(UsbHidlTest, checkSupportedContaminantProtectionModes) {
    Return<void> ret = usb->queryPortStatus();
    ASSERT_TRUE(ret.isOk());
    auto res = usb_cb_2->WaitForCallback(kCallbackNameNotifyPortStatusChange_1_2);
@@ -243,7 +233,7 @@ TEST_F(UsbHidlTest, checkSupportedContaminantProtectionModes) {
 * enableContaminantPresenceDetection should not enable/disable
 * contaminantPresenceProtection.
 */
TEST_F(UsbHidlTest, presenceDetectionSupportedCheck) {
TEST_P(UsbHidlTest, presenceDetectionSupportedCheck) {
    Return<void> ret = usb->queryPortStatus();
    ASSERT_TRUE(ret.isOk());
    auto res = usb_cb_2->WaitForCallback(kCallbackNameNotifyPortStatusChange_1_2);
@@ -272,7 +262,7 @@ TEST_F(UsbHidlTest, presenceDetectionSupportedCheck) {
/*
 * enableContaminantPresenceDetection should succeed atleast 90% when supported.
 */
TEST_F(UsbHidlTest, contaminantPresenceDetectionStability) {
TEST_P(UsbHidlTest, contaminantPresenceDetectionStability) {
    int successCount = 0;
    bool currentStatus;
    bool supported = true;
@@ -309,7 +299,7 @@ TEST_F(UsbHidlTest, contaminantPresenceDetectionStability) {
 * enableContaminantPresenceProtection should not enable/disable
 * contaminantPresenceProtection.
 */
TEST_F(UsbHidlTest, presenceProtectionSupportedCheck) {
TEST_P(UsbHidlTest, presenceProtectionSupportedCheck) {
    Return<void> ret = usb->queryPortStatus();
    ASSERT_TRUE(ret.isOk());
    auto res = usb_cb_2->WaitForCallback(kCallbackNameNotifyPortStatusChange_1_2);
@@ -338,7 +328,7 @@ TEST_F(UsbHidlTest, presenceProtectionSupportedCheck) {
/*
 * enableContaminantPresenceProtection should succeed atleast 90% when supported.
 */
TEST_F(UsbHidlTest, contaminantPresenceProtectionStability) {
TEST_P(UsbHidlTest, contaminantPresenceProtectionStability) {
    int successCount = 0;
    bool currentStatus;
    bool supported = true;
@@ -370,11 +360,7 @@ TEST_F(UsbHidlTest, contaminantPresenceProtectionStability) {
    if (!supported) EXPECT_GE(successCount, 9);
}

int main(int argc, char** argv) {
    ::testing::AddGlobalTestEnvironment(UsbHidlEnvironment::Instance());
    ::testing::InitGoogleTest(&argc, argv);
    UsbHidlEnvironment::Instance()->init(&argc, argv);
    int status = RUN_ALL_TESTS();
    ALOGI("Test result = %d", status);
    return status;
}
INSTANTIATE_TEST_SUITE_P(
        PerInstance, UsbHidlTest,
        testing::ValuesIn(android::hardware::getAllHalInstanceNames(IUsb::descriptor)),
        android::hardware::PrintInstanceNameToString);