Loading wifi/1.2/vts/functional/wifi_sta_iface_hidl_test.cpp +54 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,9 @@ * limitations under the License. */ #include <numeric> #include <vector> #include <android-base/logging.h> #include <android/hardware/wifi/1.2/IWifiStaIface.h> Loading @@ -24,8 +27,9 @@ #include "wifi_hidl_test_utils.h" using ::android::sp; using ::android::hardware::wifi::V1_2::IWifiStaIface; using ::android::hardware::wifi::V1_0::CommandId; using ::android::hardware::wifi::V1_0::WifiStatusCode; using ::android::hardware::wifi::V1_2::IWifiStaIface; /** * Fixture to use for all STA Iface HIDL interface tests. Loading @@ -40,6 +44,13 @@ class WifiStaIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase { virtual void TearDown() override { stopWifi(); } protected: bool isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask cap_mask) { const auto& status_and_caps = HIDL_INVOKE(wifi_sta_iface_, getCapabilities); EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_caps.first.code); return (status_and_caps.second & cap_mask) != 0; } sp<IWifiStaIface> wifi_sta_iface_; }; Loading @@ -54,3 +65,45 @@ TEST_F(WifiStaIfaceHidlTest, SetMacAddress) { EXPECT_EQ(WifiStatusCode::SUCCESS, HIDL_INVOKE(wifi_sta_iface_, setMacAddress, kMac).code); } /* * ReadApfPacketFilterData: * Ensures that we can read the APF working memory when supported. * * TODO: Test disabled because we can't even test reading and writing the APF * memory while the interface is in disconnected state (b/73804303#comment25). * There's a pending bug on VTS infra to add such support (b/32974062). * TODO: We can't execute APF opcodes from this test because there's no way * to loop test packets through the wifi firmware (b/73804303#comment29). */ TEST_F(WifiStaIfaceHidlTest, DISABLED_ReadApfPacketFilterData) { if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::APF)) { // Disable test if APF packet filer is not supported. LOG(WARNING) << "TEST SKIPPED: APF packet filtering not supported"; return; } const auto& status_and_caps = HIDL_INVOKE(wifi_sta_iface_, getApfPacketFilterCapabilities); EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_caps.first.code); LOG(WARNING) << "StaApfPacketFilterCapabilities: version=" << status_and_caps.second.version << " maxLength=" << status_and_caps.second.maxLength; const CommandId kCmd = 0; // Matches what WifiVendorHal.java uses. const uint32_t kDataSize = std::min(status_and_caps.second.maxLength, static_cast<uint32_t>(500)); // Create a buffer and fill it with some values. std::vector<uint8_t> data(kDataSize); std::iota(data.begin(), data.end(), 0); EXPECT_EQ( HIDL_INVOKE(wifi_sta_iface_, installApfPacketFilter, kCmd, data).code, WifiStatusCode::SUCCESS); const auto& status_and_data = HIDL_INVOKE(wifi_sta_iface_, readApfPacketFilterData); EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_data.first.code); EXPECT_EQ(status_and_data.second, data); } Loading
wifi/1.2/vts/functional/wifi_sta_iface_hidl_test.cpp +54 −1 Original line number Diff line number Diff line Loading @@ -14,6 +14,9 @@ * limitations under the License. */ #include <numeric> #include <vector> #include <android-base/logging.h> #include <android/hardware/wifi/1.2/IWifiStaIface.h> Loading @@ -24,8 +27,9 @@ #include "wifi_hidl_test_utils.h" using ::android::sp; using ::android::hardware::wifi::V1_2::IWifiStaIface; using ::android::hardware::wifi::V1_0::CommandId; using ::android::hardware::wifi::V1_0::WifiStatusCode; using ::android::hardware::wifi::V1_2::IWifiStaIface; /** * Fixture to use for all STA Iface HIDL interface tests. Loading @@ -40,6 +44,13 @@ class WifiStaIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase { virtual void TearDown() override { stopWifi(); } protected: bool isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask cap_mask) { const auto& status_and_caps = HIDL_INVOKE(wifi_sta_iface_, getCapabilities); EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_caps.first.code); return (status_and_caps.second & cap_mask) != 0; } sp<IWifiStaIface> wifi_sta_iface_; }; Loading @@ -54,3 +65,45 @@ TEST_F(WifiStaIfaceHidlTest, SetMacAddress) { EXPECT_EQ(WifiStatusCode::SUCCESS, HIDL_INVOKE(wifi_sta_iface_, setMacAddress, kMac).code); } /* * ReadApfPacketFilterData: * Ensures that we can read the APF working memory when supported. * * TODO: Test disabled because we can't even test reading and writing the APF * memory while the interface is in disconnected state (b/73804303#comment25). * There's a pending bug on VTS infra to add such support (b/32974062). * TODO: We can't execute APF opcodes from this test because there's no way * to loop test packets through the wifi firmware (b/73804303#comment29). */ TEST_F(WifiStaIfaceHidlTest, DISABLED_ReadApfPacketFilterData) { if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::APF)) { // Disable test if APF packet filer is not supported. LOG(WARNING) << "TEST SKIPPED: APF packet filtering not supported"; return; } const auto& status_and_caps = HIDL_INVOKE(wifi_sta_iface_, getApfPacketFilterCapabilities); EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_caps.first.code); LOG(WARNING) << "StaApfPacketFilterCapabilities: version=" << status_and_caps.second.version << " maxLength=" << status_and_caps.second.maxLength; const CommandId kCmd = 0; // Matches what WifiVendorHal.java uses. const uint32_t kDataSize = std::min(status_and_caps.second.maxLength, static_cast<uint32_t>(500)); // Create a buffer and fill it with some values. std::vector<uint8_t> data(kDataSize); std::iota(data.begin(), data.end(), 0); EXPECT_EQ( HIDL_INVOKE(wifi_sta_iface_, installApfPacketFilter, kCmd, data).code, WifiStatusCode::SUCCESS); const auto& status_and_data = HIDL_INVOKE(wifi_sta_iface_, readApfPacketFilterData); EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_data.first.code); EXPECT_EQ(status_and_data.second, data); }