Merge "Add VTS coverage for TWT methods" into main
diff --git a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
index f659bf6..5e8e21f 100644
--- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
+++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
@@ -65,6 +65,12 @@
return features & static_cast<int32_t>(expected);
}
+ bool isTwtSupported() {
+ TwtCapabilities twt_capabilities = {};
+ auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities);
+ return status.isOk() && twt_capabilities.isTwtRequesterSupported;
+ }
+
ndk::ScopedAStatus createStaIface(std::shared_ptr<IWifiStaIface>* sta_iface) {
std::shared_ptr<IWifiChip> wifi_chip = getWifiChip(getInstanceName());
EXPECT_NE(nullptr, wifi_chip.get());
@@ -379,6 +385,9 @@
}
}
+/**
+ * TwtGetCapabilities
+ */
TEST_P(WifiStaIfaceAidlTest, TwtGetCapabilities) {
if (interface_version_ < 2) {
GTEST_SKIP() << "TwtGetCapabilities is available as of sta_iface V2";
@@ -400,6 +409,9 @@
EXPECT_GT(twt_capabilities.maxWakeIntervalUs, 0);
}
+/**
+ * TwtSessionSetup
+ */
TEST_P(WifiStaIfaceAidlTest, TwtSessionSetup) {
if (interface_version_ < 2) {
GTEST_SKIP() << "TwtSessionSetup is available as of sta_iface V2";
@@ -424,18 +436,14 @@
EXPECT_TRUE(wifi_sta_iface_->twtSessionSetup(1, twtRequest).isOk());
}
+/**
+ * TwtSessionGetStats
+ */
TEST_P(WifiStaIfaceAidlTest, TwtSessionGetStats) {
if (interface_version_ < 2) {
GTEST_SKIP() << "TwtSessionGetStats is available as of sta_iface V2";
}
-
- TwtCapabilities twt_capabilities = {};
- auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities);
- if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) {
- GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor";
- }
- EXPECT_TRUE(status.isOk());
- if (!twt_capabilities.isTwtRequesterSupported) {
+ if (!isTwtSupported()) {
GTEST_SKIP() << "TWT is not supported";
}
@@ -444,26 +452,77 @@
EXPECT_TRUE(wifi_sta_iface_->twtSessionGetStats(1, 10).isOk());
}
+/**
+ * TwtSessionTeardown
+ */
TEST_P(WifiStaIfaceAidlTest, TwtSessionTeardown) {
if (interface_version_ < 2) {
- GTEST_SKIP() << "TwtSessionTeardown is available as of sta_iface V3";
+ GTEST_SKIP() << "TwtSessionTeardown is available as of sta_iface V2";
}
-
- TwtCapabilities twt_capabilities = {};
- auto status = wifi_sta_iface_->twtGetCapabilities(&twt_capabilities);
- if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) {
- GTEST_SKIP() << "twtGetCapabilities() is not supported by the vendor";
- }
- EXPECT_TRUE(status.isOk());
- if (!twt_capabilities.isTwtRequesterSupported) {
+ if (!isTwtSupported()) {
GTEST_SKIP() << "TWT is not supported";
}
// Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS
- // as the error code.
+ // as the error code.
EXPECT_TRUE(wifi_sta_iface_->twtSessionTeardown(1, 10).isOk());
}
+/**
+ * TwtSessionUpdate
+ */
+TEST_P(WifiStaIfaceAidlTest, TwtSessionUpdate) {
+ if (interface_version_ < 2) {
+ GTEST_SKIP() << "TwtSessionUpdate is available as of sta_iface V2";
+ }
+ if (!isTwtSupported()) {
+ GTEST_SKIP() << "TWT is not supported";
+ }
+
+ TwtRequest twtRequest;
+ twtRequest.mloLinkId = 0;
+ twtRequest.minWakeDurationUs = 1000;
+ twtRequest.maxWakeDurationUs = 10000;
+ twtRequest.minWakeIntervalUs = 10000;
+ twtRequest.maxWakeIntervalUs = 100000;
+
+ // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS
+ // as the error code.
+ EXPECT_TRUE(wifi_sta_iface_->twtSessionUpdate(1, 10, twtRequest).isOk());
+}
+
+/**
+ * TwtSessionSuspend
+ */
+TEST_P(WifiStaIfaceAidlTest, TwtSessionSuspend) {
+ if (interface_version_ < 2) {
+ GTEST_SKIP() << "TwtSessionSuspend is available as of sta_iface V2";
+ }
+ if (!isTwtSupported()) {
+ GTEST_SKIP() << "TWT is not supported";
+ }
+
+ // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS
+ // as the error code.
+ EXPECT_TRUE(wifi_sta_iface_->twtSessionSuspend(1, 10).isOk());
+}
+
+/**
+ * TwtSessionResume
+ */
+TEST_P(WifiStaIfaceAidlTest, TwtSessionResume) {
+ if (interface_version_ < 2) {
+ GTEST_SKIP() << "TwtSessionResume is available as of sta_iface V2";
+ }
+ if (!isTwtSupported()) {
+ GTEST_SKIP() << "TWT is not supported";
+ }
+
+ // Expecting a IWifiStaIfaceEventCallback.onTwtFailure() with INVALID_PARAMS
+ // as the error code.
+ EXPECT_TRUE(wifi_sta_iface_->twtSessionResume(1, 10).isOk());
+}
+
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(WifiStaIfaceAidlTest);
INSTANTIATE_TEST_SUITE_P(WifiTest, WifiStaIfaceAidlTest,
testing::ValuesIn(android::getAidlHalInstanceNames(IWifi::descriptor)),