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

Commit 75baf03a 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 am:...

vts(wifi): Stop wifi fully instead of stopping framework am: 87423904 am: 356437d4 am: 4df2e04a

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

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

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


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


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


namespace {
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
// Helper function to initialize the driver and firmware to STA mode
// using the vendor HAL HIDL interface.
// using the vendor HAL HIDL interface.
@@ -118,6 +138,18 @@ std::string getP2pIfaceName() {
}
}
}  // namespace
}  // 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() { stopSupplicant(""); }


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


#include "wifi_hidl_test_utils.h"
#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.
// Used to stop the android wifi framework before every test.
void stopWifiFramework(const std::string& wifi_instance_name);
bool stopWifiFramework();
void startWifiFramework(const std::string& wifi_instance_name);


void stopSupplicant(const std::string& wifi_instance_name);
void stopSupplicant(const std::string& wifi_instance_name);
// Used to configure the chip, driver and start wpa_supplicant before every
// 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 ::testing::TestWithParam<std::tuple<std::string, std::string>> {
   public:
   public:
    virtual void SetUp() override {
    virtual void SetUp() override {
        // Stop Wi-Fi
        ASSERT_TRUE(stopWifiFramework());  // stop & wait for wifi to shutdown.

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

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


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


   protected:
   protected: