mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
Add VTS tests for findWithParams and
connectWithParams. Bug: 322815584 Test: atest VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: I58c59d045f2fbe5af4101d152a487954e8e16bd5
This commit is contained in:
@@ -35,7 +35,9 @@ using aidl::android::hardware::wifi::supplicant::IfaceType;
|
||||
using aidl::android::hardware::wifi::supplicant::ISupplicant;
|
||||
using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface;
|
||||
using aidl::android::hardware::wifi::supplicant::MiracastMode;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pConnectInfo;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pDeviceFoundEventParams;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pDiscoveryInfo;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pFrameTypeMask;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pGoNegotiationReqEventParams;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pGroupCapabilityMask;
|
||||
@@ -45,6 +47,7 @@ using aidl::android::hardware::wifi::supplicant::P2pPeerClientDisconnectedEventP
|
||||
using aidl::android::hardware::wifi::supplicant::P2pPeerClientJoinedEventParams;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pProvDiscStatusCode;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pProvisionDiscoveryCompletedEventParams;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pScanType;
|
||||
using aidl::android::hardware::wifi::supplicant::P2pStatusCode;
|
||||
using aidl::android::hardware::wifi::supplicant::SupplicantStatusCode;
|
||||
using aidl::android::hardware::wifi::supplicant::WpsConfigMethods;
|
||||
@@ -69,6 +72,7 @@ const uint32_t kTestNetworkId = 7;
|
||||
const uint32_t kTestGroupFreq = 0;
|
||||
const bool kTestGroupPersistent = false;
|
||||
const bool kTestGroupIsJoin = false;
|
||||
const auto& kTestVendorData = generateOuiKeyedDataList(5);
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -222,6 +226,7 @@ class SupplicantP2pIfaceAidlTest : public testing::TestWithParam<std::string> {
|
||||
initializeService();
|
||||
supplicant_ = getSupplicant(GetParam().c_str());
|
||||
ASSERT_NE(supplicant_, nullptr);
|
||||
ASSERT_TRUE(supplicant_->getInterfaceVersion(&interface_version_).isOk());
|
||||
ASSERT_TRUE(supplicant_
|
||||
->setDebugParams(DebugLevel::EXCESSIVE,
|
||||
true, // show timestamps
|
||||
@@ -247,6 +252,7 @@ class SupplicantP2pIfaceAidlTest : public testing::TestWithParam<std::string> {
|
||||
protected:
|
||||
std::shared_ptr<ISupplicant> supplicant_;
|
||||
std::shared_ptr<ISupplicantP2pIface> p2p_iface_;
|
||||
int interface_version_;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -549,6 +555,34 @@ TEST_P(SupplicantP2pIfaceAidlTest, FindSpecificFrequency) {
|
||||
EXPECT_TRUE(p2p_iface_->findOnSpecificFrequency(2412, kTestFindTimeout).isOk());
|
||||
}
|
||||
|
||||
/*
|
||||
* FindWithParams
|
||||
*/
|
||||
TEST_P(SupplicantP2pIfaceAidlTest, FindWithParams) {
|
||||
if (interface_version_ < 3) {
|
||||
GTEST_SKIP() << "findWithParams is available as of Supplicant V3";
|
||||
}
|
||||
|
||||
P2pDiscoveryInfo discoveryParams;
|
||||
discoveryParams.timeoutInSec = kTestFindTimeout;
|
||||
discoveryParams.vendorData = kTestVendorData;
|
||||
|
||||
discoveryParams.scanType = P2pScanType::FULL;
|
||||
EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk());
|
||||
EXPECT_TRUE(p2p_iface_->stopFind().isOk());
|
||||
sleep(1);
|
||||
|
||||
discoveryParams.scanType = P2pScanType::SOCIAL;
|
||||
EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk());
|
||||
EXPECT_TRUE(p2p_iface_->stopFind().isOk());
|
||||
sleep(1);
|
||||
|
||||
discoveryParams.scanType = P2pScanType::SPECIFIC_FREQ;
|
||||
discoveryParams.frequencyMhz = 2412;
|
||||
EXPECT_TRUE(p2p_iface_->findWithParams(discoveryParams).isOk());
|
||||
EXPECT_TRUE(p2p_iface_->stopFind().isOk());
|
||||
}
|
||||
|
||||
/*
|
||||
* StopFind
|
||||
*/
|
||||
@@ -575,6 +609,27 @@ TEST_P(SupplicantP2pIfaceAidlTest, Connect) {
|
||||
.isOk());
|
||||
}
|
||||
|
||||
/*
|
||||
* ConnectWithParams
|
||||
*/
|
||||
TEST_P(SupplicantP2pIfaceAidlTest, ConnectWithParams) {
|
||||
if (interface_version_ < 3) {
|
||||
GTEST_SKIP() << "connectWithParams is available as of Supplicant V3";
|
||||
}
|
||||
|
||||
P2pConnectInfo connectInfo;
|
||||
connectInfo.peerAddress = vecToArrayMacAddr(kTestMacAddr);
|
||||
connectInfo.provisionMethod = WpsProvisionMethod::PBC;
|
||||
connectInfo.preSelectedPin = kTestConnectPin;
|
||||
connectInfo.joinExistingGroup = true;
|
||||
connectInfo.persistent = false;
|
||||
connectInfo.goIntent = kTestConnectGoIntent;
|
||||
connectInfo.vendorData = kTestVendorData;
|
||||
|
||||
std::string pin;
|
||||
EXPECT_TRUE(p2p_iface_->connectWithParams(connectInfo, &pin).isOk());
|
||||
}
|
||||
|
||||
/*
|
||||
* CancelConnect
|
||||
*/
|
||||
|
||||
@@ -16,14 +16,18 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <android/persistable_bundle_aidl.h>
|
||||
|
||||
#include "supplicant_aidl_test_utils.h"
|
||||
#include "supplicant_legacy_test_utils.h"
|
||||
|
||||
using aidl::android::hardware::wifi::common::OuiKeyedData;
|
||||
using aidl::android::hardware::wifi::supplicant::IfaceInfo;
|
||||
using aidl::android::hardware::wifi::supplicant::ISupplicant;
|
||||
using aidl::android::hardware::wifi::supplicant::ISupplicantP2pIface;
|
||||
using aidl::android::hardware::wifi::supplicant::ISupplicantStaIface;
|
||||
using aidl::android::hardware::wifi::supplicant::KeyMgmtMask;
|
||||
using aidl::android::os::PersistableBundle;
|
||||
|
||||
std::string getStaIfaceName() {
|
||||
std::array<char, PROPERTY_VALUE_MAX> buffer;
|
||||
@@ -91,3 +95,28 @@ std::shared_ptr<ISupplicant> getSupplicant(const char* supplicant_name) {
|
||||
}
|
||||
return supplicant;
|
||||
}
|
||||
|
||||
std::array<uint8_t, 6> vecToArrayMacAddr(std::vector<uint8_t> vectorAddr) {
|
||||
std::array<uint8_t, 6> arrayAddr;
|
||||
std::copy(vectorAddr.begin(), vectorAddr.begin() + 6, arrayAddr.begin());
|
||||
return arrayAddr;
|
||||
}
|
||||
|
||||
std::optional<OuiKeyedData> generateOuiKeyedData(int oui) {
|
||||
PersistableBundle bundle;
|
||||
bundle.putString("stringKey", "stringValue");
|
||||
bundle.putInt("intKey", 12345);
|
||||
|
||||
OuiKeyedData data;
|
||||
data.oui = oui;
|
||||
data.vendorData = bundle;
|
||||
return std::optional<OuiKeyedData>{data};
|
||||
}
|
||||
|
||||
std::optional<std::vector<std::optional<OuiKeyedData>>> generateOuiKeyedDataList(int size) {
|
||||
std::vector<std::optional<OuiKeyedData>> dataList;
|
||||
for (int i = 0; i < size; i++) {
|
||||
dataList.push_back(generateOuiKeyedData(i + 1));
|
||||
}
|
||||
return std::optional<std::vector<std::optional<OuiKeyedData>>>{dataList};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user