From aa1e6b02fc2ba7fdf2d8df43e737813fc5c9a4ad Mon Sep 17 00:00:00 2001 From: Ahmed ElArabawy Date: Wed, 2 Jan 2019 10:07:05 -0800 Subject: [PATCH] Wifi: Fix VTS test backward compatibility This commit fixes backward compatibility for the vts tests. For devices supporting IWifiChip@1.3 HAL interface, getCapabilities_1_3() should be used instead of getCapabilities() in older HAL version vts tests. Bug: 120912623 Test: VTS tests run successfully for all HAL versions Test: run vts -m VtsHalWifiV1_0TargetTest Test: run vts -m VtsHalWifiV1_1TargetTest Test: run vts -m VtsHalWifiV1_2TargetTest Test: run vts -m VtsHalWifiV1_3TargetTest Change-Id: Ife61bbbbdc8f7c0862f511fbe2b76519bec98941 --- wifi/1.0/vts/functional/Android.bp | 1 + wifi/1.0/vts/functional/wifi_chip_hidl_test.cpp | 15 ++++++++++++++- wifi/1.1/vts/functional/Android.bp | 2 ++ wifi/1.1/vts/functional/wifi_chip_hidl_test.cpp | 15 ++++++++++++++- wifi/1.2/vts/functional/Android.bp | 1 + wifi/1.2/vts/functional/wifi_chip_hidl_test.cpp | 15 ++++++++++++++- 6 files changed, 46 insertions(+), 3 deletions(-) diff --git a/wifi/1.0/vts/functional/Android.bp b/wifi/1.0/vts/functional/Android.bp index 3189db42d2..397ad179af 100644 --- a/wifi/1.0/vts/functional/Android.bp +++ b/wifi/1.0/vts/functional/Android.bp @@ -45,6 +45,7 @@ cc_test { static_libs: [ "VtsHalWifiV1_0TargetTestUtil", "android.hardware.wifi@1.0", + "android.hardware.wifi@1.1", "android.hardware.wifi@1.2", "android.hardware.wifi@1.3", ], diff --git a/wifi/1.0/vts/functional/wifi_chip_hidl_test.cpp b/wifi/1.0/vts/functional/wifi_chip_hidl_test.cpp index a3fdf27259..3555c2ed03 100644 --- a/wifi/1.0/vts/functional/wifi_chip_hidl_test.cpp +++ b/wifi/1.0/vts/functional/wifi_chip_hidl_test.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -87,7 +88,19 @@ class WifiChipHidlTest : public ::testing::VtsHalHidlTargetTestBase { uint32_t configureChipForStaIfaceAndGetCapabilities() { configureChipForIfaceType(IfaceType::STA, true); - const auto& status_and_caps = HIDL_INVOKE(wifi_chip_, getCapabilities); + + sp<::android::hardware::wifi::V1_3::IWifiChip> chip_converted = + ::android::hardware::wifi::V1_3::IWifiChip::castFrom(wifi_chip_); + + std::pair status_and_caps; + + if (chip_converted != nullptr) { + // Call the newer HAL version + status_and_caps = HIDL_INVOKE(chip_converted, getCapabilities_1_3); + } else { + status_and_caps = HIDL_INVOKE(wifi_chip_, getCapabilities); + } + if (status_and_caps.first.code != WifiStatusCode::SUCCESS) { EXPECT_EQ(WifiStatusCode::ERROR_NOT_SUPPORTED, status_and_caps.first.code); return 0; diff --git a/wifi/1.1/vts/functional/Android.bp b/wifi/1.1/vts/functional/Android.bp index 78d7a854b3..6662314aa5 100644 --- a/wifi/1.1/vts/functional/Android.bp +++ b/wifi/1.1/vts/functional/Android.bp @@ -24,6 +24,8 @@ cc_test { "VtsHalWifiV1_0TargetTestUtil", "android.hardware.wifi@1.0", "android.hardware.wifi@1.1", + "android.hardware.wifi@1.2", + "android.hardware.wifi@1.3", ], test_suites: ["general-tests"], } diff --git a/wifi/1.1/vts/functional/wifi_chip_hidl_test.cpp b/wifi/1.1/vts/functional/wifi_chip_hidl_test.cpp index d3a983cc8c..63235472af 100644 --- a/wifi/1.1/vts/functional/wifi_chip_hidl_test.cpp +++ b/wifi/1.1/vts/functional/wifi_chip_hidl_test.cpp @@ -18,6 +18,7 @@ #include #include +#include #include @@ -58,7 +59,19 @@ class WifiChipHidlTest : public ::testing::VtsHalHidlTargetTestBase { ChipModeId mode_id; EXPECT_TRUE(configureChipToSupportIfaceType( wifi_chip_, IfaceType::STA, &mode_id)); - const auto& status_and_caps = HIDL_INVOKE(wifi_chip_, getCapabilities); + + sp<::android::hardware::wifi::V1_3::IWifiChip> chip_converted = + ::android::hardware::wifi::V1_3::IWifiChip::castFrom(wifi_chip_); + + std::pair status_and_caps; + + if (chip_converted != nullptr) { + // Call the newer HAL version + status_and_caps = HIDL_INVOKE(chip_converted, getCapabilities_1_3); + } else { + status_and_caps = HIDL_INVOKE(wifi_chip_, getCapabilities); + } + EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_caps.first.code); return status_and_caps.second; } diff --git a/wifi/1.2/vts/functional/Android.bp b/wifi/1.2/vts/functional/Android.bp index a969f655ad..b2956ce3c4 100644 --- a/wifi/1.2/vts/functional/Android.bp +++ b/wifi/1.2/vts/functional/Android.bp @@ -27,6 +27,7 @@ cc_test { "android.hardware.wifi@1.0", "android.hardware.wifi@1.1", "android.hardware.wifi@1.2", + "android.hardware.wifi@1.3", ], test_suites: ["general-tests"], } diff --git a/wifi/1.2/vts/functional/wifi_chip_hidl_test.cpp b/wifi/1.2/vts/functional/wifi_chip_hidl_test.cpp index a5457b761d..9d567feafa 100644 --- a/wifi/1.2/vts/functional/wifi_chip_hidl_test.cpp +++ b/wifi/1.2/vts/functional/wifi_chip_hidl_test.cpp @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -104,7 +105,19 @@ class WifiChipHidlTest : public ::testing::VtsHalHidlTargetTestBase { ChipModeId mode_id; EXPECT_TRUE( configureChipToSupportIfaceType(wifi_chip_, IfaceType::STA, &mode_id)); - const auto& status_and_caps = HIDL_INVOKE(wifi_chip_, getCapabilities); + + sp<::android::hardware::wifi::V1_3::IWifiChip> chip_converted = + ::android::hardware::wifi::V1_3::IWifiChip::castFrom(wifi_chip_); + + std::pair status_and_caps; + + if (chip_converted != nullptr) { + // Call the newer HAL version + status_and_caps = HIDL_INVOKE(chip_converted, getCapabilities_1_3); + } else { + status_and_caps = HIDL_INVOKE(wifi_chip_, getCapabilities); + } + EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_caps.first.code); return status_and_caps.second; }