Merge "vts(wifi): Stop wifi fully instead of stopping framework" into android11-tests-dev
This commit is contained in:
commit
61b1ceee5e
3 changed files with 49 additions and 12 deletions
|
@ -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:
|
||||
|
@ -219,4 +222,4 @@ INSTANTIATE_TEST_CASE_P(
|
|||
android::hardware::getAllHalInstanceNames(IWifi::descriptor)),
|
||||
testing::ValuesIn(android::hardware::getAllHalInstanceNames(
|
||||
ISupplicant::descriptor))),
|
||||
android::hardware::PrintInstanceTupleNameToString<>);
|
||||
android::hardware::PrintInstanceTupleNameToString<>);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue