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

Commit 356437d4 authored by Roshan Pius's avatar Roshan Pius Committed by Automerger Merge Worker
Browse files

vts(wifi): Stop wifi fully instead of stopping framework am: 87423904

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/15847168

Change-Id: I029bfab8ef9a78aa4212eeed38aea5aae007dfe2
parents 13a2db00 87423904
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -38,12 +38,15 @@ class SupplicantHidlTest
    : public ::testing::TestWithParam<std::tuple<std::string, std::string>> {
   public:
    virtual void SetUp() override {
        // Stop Wi-Fi
        ASSERT_TRUE(stopWifiFramework());  // stop & wait for wifi to shutdown.

        wifi_instance_name_ = std::get<0>(GetParam());
        supplicant_instance_name_ = std::get<1>(GetParam());
        std::system("/system/bin/start");
        ASSERT_TRUE(waitForFrameworkReady());
        isP2pOn_ =
            testing::deviceSupportsFeature("android.hardware.wifi.direct");
        // Stop Framework
        std::system("/system/bin/stop");
        stopSupplicant(wifi_instance_name_);
        startSupplicantAndWaitForHidlService(wifi_instance_name_,
                                             supplicant_instance_name_);
@@ -53,8 +56,8 @@ class SupplicantHidlTest

    virtual void TearDown() override {
        stopSupplicant(wifi_instance_name_);
        // Start Framework
        std::system("/system/bin/start");
        // Start Wi-Fi
        startWifiFramework();
    }

   protected:
+32 −0
Original line number Diff line number Diff line
@@ -48,6 +48,26 @@ using ::android::wifi_system::InterfaceTool;
using ::android::wifi_system::SupplicantManager;

namespace {
bool waitForSupplicantState(bool is_running) {
    SupplicantManager supplicant_manager;
    int count = 50; /* wait at most 5 seconds for completion */
    while (count-- > 0) {
        if (supplicant_manager.IsSupplicantRunning() == is_running) {
            return true;
        }
        usleep(100000);
    }
    LOG(ERROR) << "Supplicant not " << is_running ? "running" : "stopped";
    return false;
}

// Helper function to wait for supplicant to be started by framework on wifi
// enable.
bool waitForSupplicantStart() { return waitForSupplicantState(true); }

// Helper function to wait for supplicant to be stopped by framework on wifi
// disable.
bool waitForSupplicantStop() { return waitForSupplicantState(false); }

// Helper function to initialize the driver and firmware to STA mode
// using the vendor HAL HIDL interface.
@@ -118,6 +138,18 @@ std::string getP2pIfaceName() {
}
}  // namespace

bool startWifiFramework() {
    std::system("svc wifi enable");
    std::system("cmd wifi set-scan-always-available enabled");
    return waitForSupplicantStart();  // wait for wifi to start.
}

bool stopWifiFramework() {
    std::system("svc wifi disable");
    std::system("cmd wifi set-scan-always-available disabled");
    return waitForSupplicantStop();  // wait for wifi to shutdown.
}

void stopSupplicant() { stopSupplicant(""); }

void stopSupplicant(const std::string& wifi_instance_name) {
+9 −7
Original line number Diff line number Diff line
@@ -29,9 +29,11 @@

#include "wifi_hidl_test_utils.h"

// Used to start the android wifi framework after every test.
bool startWifiFramework();

// Used to stop the android wifi framework before every test.
void stopWifiFramework(const std::string& wifi_instance_name);
void startWifiFramework(const std::string& wifi_instance_name);
bool stopWifiFramework();

void stopSupplicant(const std::string& wifi_instance_name);
// Used to configure the chip, driver and start wpa_supplicant before every
@@ -70,16 +72,16 @@ class SupplicantHidlTestBase
    : public ::testing::TestWithParam<std::tuple<std::string, std::string>> {
   public:
    virtual void SetUp() override {
        // Stop Wi-Fi
        ASSERT_TRUE(stopWifiFramework());  // stop & wait for wifi to shutdown.

        // should always be v1.0 wifi
        wifi_v1_0_instance_name_ = std::get<0>(GetParam());
        supplicant_instance_name_ = std::get<1>(GetParam());
        std::system("/system/bin/start");
        ASSERT_TRUE(waitForFrameworkReady());

        isP2pOn_ =
            testing::deviceSupportsFeature("android.hardware.wifi.direct");
        // Stop Framework
        std::system("/system/bin/stop");
        stopSupplicant(wifi_v1_0_instance_name_);
        startSupplicantAndWaitForHidlService(wifi_v1_0_instance_name_,
                                             supplicant_instance_name_);
@@ -88,8 +90,8 @@ class SupplicantHidlTestBase

    virtual void TearDown() override {
        stopSupplicant(wifi_v1_0_instance_name_);
        // Start Framework
        std::system("/system/bin/start");
        // Start Wi-Fi
        startWifiFramework();
    }

   protected: