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

Commit fbc10798 authored by Mahesh KKV's avatar Mahesh KKV Committed by Android (Google) Code Review
Browse files

Merge "Add VTS tests for the USD methods." into main

parents b37ecf0c 87d8a5be
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
@@ -47,8 +47,12 @@ using aidl::android::hardware::wifi::supplicant::MscsParams;
using aidl::android::hardware::wifi::supplicant::QosCharacteristics;
using aidl::android::hardware::wifi::supplicant::QosPolicyScsData;
using aidl::android::hardware::wifi::supplicant::QosPolicyScsRequestStatus;
using aidl::android::hardware::wifi::supplicant::UsdBaseConfig;
using aidl::android::hardware::wifi::supplicant::UsdCapabilities;
using aidl::android::hardware::wifi::supplicant::UsdMessageInfo;
using aidl::android::hardware::wifi::supplicant::UsdPublishConfig;
using aidl::android::hardware::wifi::supplicant::UsdServiceDiscoveryInfo;
using aidl::android::hardware::wifi::supplicant::UsdSubscribeConfig;
using aidl::android::hardware::wifi::supplicant::UsdTerminateReasonCode;
using aidl::android::hardware::wifi::supplicant::WpaDriverCapabilitiesMask;
using aidl::android::hardware::wifi::supplicant::WpsConfigMethods;
@@ -880,6 +884,68 @@ TEST_P(SupplicantStaIfaceAidlTest, AddAndRemoveQosWithTrafficChars) {
    EXPECT_EQ(1, responseList.size());
}

/*
 * Verify that all USD methods check the Service Specific Info (SSI) length
 * and fail if the provided SSI is too long.
 */
TEST_P(SupplicantStaIfaceAidlTest, InvalidUsdServiceSpecificInfo) {
    if (interface_version_ < 4) {
        GTEST_SKIP() << "USD is available as of Supplicant V4";
    }

    UsdCapabilities caps;
    EXPECT_TRUE(sta_iface_->getUsdCapabilities(&caps).isOk());
    if (!caps.isUsdPublisherSupported && !caps.isUsdSubscriberSupported) {
        GTEST_SKIP() << "USD publish and subscribe are not supported";
    }

    int commandId = 123;
    std::vector<uint8_t> invalidSsi(caps.maxLocalSsiLengthBytes + 1);
    UsdBaseConfig invalidBaseConfig;
    invalidBaseConfig.serviceSpecificInfo = invalidSsi;

    if (caps.isUsdPublisherSupported) {
        UsdPublishConfig publishConfig;
        publishConfig.usdBaseConfig = invalidBaseConfig;
        EXPECT_FALSE(sta_iface_->startUsdPublish(commandId, publishConfig).isOk());
        EXPECT_FALSE(sta_iface_->updateUsdPublish(commandId, invalidSsi).isOk());
    }

    if (caps.isUsdSubscriberSupported) {
        UsdSubscribeConfig subscribeConfig;
        subscribeConfig.usdBaseConfig = invalidBaseConfig;
        EXPECT_FALSE(sta_iface_->startUsdSubscribe(commandId, subscribeConfig).isOk());
    }

    UsdMessageInfo messageInfo;
    messageInfo.message = invalidSsi;
    EXPECT_FALSE(sta_iface_->sendUsdMessage(messageInfo).isOk());
}

/*
 * Cancel a USD Publish and Subscribe session.
 */
TEST_P(SupplicantStaIfaceAidlTest, CancelUsdSession) {
    if (interface_version_ < 4) {
        GTEST_SKIP() << "USD is available as of Supplicant V4";
    }

    UsdCapabilities caps;
    EXPECT_TRUE(sta_iface_->getUsdCapabilities(&caps).isOk());
    if (!caps.isUsdPublisherSupported && !caps.isUsdSubscriberSupported) {
        GTEST_SKIP() << "USD publish and subscribe are not supported";
    }

    int sessionId = 123;
    if (caps.isUsdPublisherSupported) {
        // Method is expected to succeed, even if the session does not exist.
        EXPECT_TRUE(sta_iface_->cancelUsdPublish(sessionId).isOk());
    }
    if (caps.isUsdSubscriberSupported) {
        EXPECT_TRUE(sta_iface_->cancelUsdSubscribe(sessionId).isOk());
    }
}

GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(SupplicantStaIfaceAidlTest);
INSTANTIATE_TEST_SUITE_P(Supplicant, SupplicantStaIfaceAidlTest,
                         testing::ValuesIn(android::getAidlHalInstanceNames(