Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4077b35 authored by Roshan Pius's avatar Roshan Pius
Browse files

wifi(vts): Set the iface up as a part of setup

Attempts to fix a VTS test failure reported by OEM's on devices
supporting concurrent AP iface.

Bug: 143096362
Test: make vts && vts-tradefed run commandAndExit vts --module VtsHalWifiV1_0Host
Test: Will need to ask OEM to verify the fix.
Change-Id: I0958d720411258761f4ac5bcccc823b06a55d518
Merged-In: I0958d720411258761f4ac5bcccc823b06a55d518
parent 0b8f38fa
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -28,7 +28,10 @@ cc_library_static {
    shared_libs: [
        "libnativehelper",
    ],
    static_libs: ["android.hardware.wifi@1.0"],
    static_libs: [
        "android.hardware.wifi@1.0",
        "libwifi-system-iface"
    ],
}

cc_test {
@@ -48,6 +51,7 @@ cc_test {
        "android.hardware.wifi@1.1",
        "android.hardware.wifi@1.2",
        "android.hardware.wifi@1.3",
        "libwifi-system-iface"
    ],
    test_suites: ["general-tests"],
}
@@ -62,6 +66,7 @@ cc_test {
    static_libs: [
        "VtsHalWifiV1_0TargetTestUtil",
        "android.hardware.wifi@1.0",
        "libwifi-system-iface"
    ],
    test_suites: ["general-tests"],
}
+18 −0
Original line number Diff line number Diff line
@@ -16,12 +16,15 @@

#include <VtsHalHidlTargetTestBase.h>

#include <wifi_system/interface_tool.h>

#include "wifi_hidl_call_util.h"
#include "wifi_hidl_test_utils.h"

using ::android::hardware::wifi::V1_0::IWifi;
using ::android::hardware::wifi::V1_0::IWifiApIface;
using ::android::hardware::wifi::V1_0::IWifiChip;
using ::android::hardware::wifi::V1_0::IWifiIface;
using ::android::hardware::wifi::V1_0::IWifiNanIface;
using ::android::hardware::wifi::V1_0::IWifiP2pIface;
using ::android::hardware::wifi::V1_0::IWifiRttController;
@@ -34,6 +37,7 @@ using ::android::hardware::wifi::V1_0::WifiStatusCode;
using ::android::sp;
using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec;
using ::android::wifi_system::InterfaceTool;

extern WifiHidlEnvironment* gEnv;

@@ -122,6 +126,16 @@ sp<IWifiChip> getWifiChip() {
    return status_and_chip.second;
}

void setIfaceUp(const sp<IWifiIface>& iface) {
    // Set the iface up before retrurning the object.
    const auto& status_and_name = HIDL_INVOKE(iface, getName);
    if (status_and_name.first.code == WifiStatusCode::SUCCESS) {
        const auto& iface_name = status_and_name.second;
        InterfaceTool iface_tool;
        iface_tool.SetUpState(iface_name.c_str(), true);
    }
}

sp<IWifiApIface> getWifiApIface() {
    sp<IWifiChip> wifi_chip = getWifiChip();
    if (!wifi_chip.get()) {
@@ -134,6 +148,7 @@ sp<IWifiApIface> getWifiApIface() {
    if (status_and_iface.first.code != WifiStatusCode::SUCCESS) {
        return nullptr;
    }
    setIfaceUp(status_and_iface.second);
    return status_and_iface.second;
}

@@ -149,6 +164,7 @@ sp<IWifiNanIface> getWifiNanIface() {
    if (status_and_iface.first.code != WifiStatusCode::SUCCESS) {
        return nullptr;
    }
    setIfaceUp(status_and_iface.second);
    return status_and_iface.second;
}

@@ -164,6 +180,7 @@ sp<IWifiP2pIface> getWifiP2pIface() {
    if (status_and_iface.first.code != WifiStatusCode::SUCCESS) {
        return nullptr;
    }
    setIfaceUp(status_and_iface.second);
    return status_and_iface.second;
}

@@ -179,6 +196,7 @@ sp<IWifiStaIface> getWifiStaIface() {
    if (status_and_iface.first.code != WifiStatusCode::SUCCESS) {
        return nullptr;
    }
    setIfaceUp(status_and_iface.second);
    return status_and_iface.second;
}

+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ cc_test {
        "android.hardware.wifi@1.1",
        "android.hardware.wifi@1.2",
        "android.hardware.wifi@1.3",
        "libwifi-system-iface"
    ],
    test_suites: ["general-tests"],
}
+2 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ cc_test {
        "android.hardware.wifi@1.1",
        "android.hardware.wifi@1.2",
        "android.hardware.wifi@1.3",
        "libwifi-system-iface"
    ],
    test_suites: ["general-tests"],
}
@@ -44,6 +45,7 @@ cc_test {
        "android.hardware.wifi@1.0",
        "android.hardware.wifi@1.1",
        "android.hardware.wifi@1.2",
        "libwifi-system-iface"
    ],
    test_suites: ["general-tests"],
}
+1 −0
Original line number Diff line number Diff line
@@ -28,5 +28,6 @@ cc_test {
        "android.hardware.wifi@1.1",
        "android.hardware.wifi@1.2",
        "android.hardware.wifi@1.3",
        "libwifi-system-iface"
    ],
}