From 9f215110bf524e3bf1d2fb591a724623e11423bc Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Mon, 12 Feb 2024 19:56:37 +0900 Subject: [PATCH] Update VTS to exempt low-power TVs from APF This change updates the VTS to exempt TV devices that consume <= 2W of standby power from APF requirements. This update aligns with latest GTVS policy. Bug: 306587099 Test: TH Change-Id: Ifec617520db20d1ef61f1eca63b7160d9191f446 --- .../functional/wifi_sta_iface_aidl_test.cpp | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) 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 fa7149ff55..e456e498c2 100644 --- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp +++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp @@ -74,7 +74,17 @@ class WifiStaIfaceAidlTest : public testing::TestWithParam { return testing::deviceSupportsFeature("com.google.android.tv.mdns_offload"); } - // Detected panel TV device by using ro.oem.key1 property. + bool doesDeviceSupportFullNetworkingUnder2w() { + return testing::deviceSupportsFeature("com.google.android.tv.full_networking_under_2w"); + } + + // Detect TV devices. + bool isTvDevice() { + return testing::deviceSupportsFeature("android.software.leanback") || + testing::deviceSupportsFeature("android.hardware.type.television"); + } + + // Detect Panel TV devices by using ro.oem.key1 property. // https://docs.partner.android.com/tv/build/platform/props-vars/ro-oem-key1 bool isPanelTvDevice() { const std::string oem_key1 = getPropertyString("ro.oem.key1"); @@ -135,10 +145,23 @@ TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) { */ // @VsrTest = 5.3.12 TEST_P(WifiStaIfaceAidlTest, CheckApfIsSupported) { - // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi - // chipset does not have sufficient RAM to do so. - if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { - GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + const std::string oem_key1 = getPropertyString("ro.oem.key1"); + if (isTvDevice()) { + // Flat panel TV devices that support MDNS offload do not have to implement APF if the WiFi + // chipset does not have sufficient RAM to do so. + if (isPanelTvDevice() && isMdnsOffloadPresentInNIC()) { + GTEST_SKIP() << "Panel TV supports mDNS offload. It is not required to support APF"; + } + // For TV devices declaring the + // com.google.android.tv.full_networking_under_2w feature, this indicates + // the device can meet the <= 2W standby power requirement while + // continuously processing network packets on the CPU, even in standby mode. + // In these cases, APF support is strongly recommended rather than being + // mandatory. + if (doesDeviceSupportFullNetworkingUnder2w()) { + GTEST_SKIP() << "TV Device meets the <= 2W standby power demand requirement. It is not " + "required to support APF."; + } } int vendor_api_level = property_get_int32("ro.vendor.api_level", 0); // Before VSR 14, APF support is optional.