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

Commit d6436731 authored by Dan Shi's avatar Dan Shi
Browse files

Convert VtsHalWifiSupplicantV1_*TargetTest to be parameterized test

Bug: 142397658
Test: atest VtsHalWifiSupplicantV1_1TargetTest \
  VtsHalWifiSupplicantV1_2TargetTest \
  VtsHalWifiSupplicantP2pV1_2TargetTest

Change-Id: I14a3e94d0b3681c5a3ebd17435dc36d279790c79
parent 9392b58d
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -57,6 +57,11 @@ namespace {
// Helper function to initialize the driver and firmware to STA mode
// using the vendor HAL HIDL interface.
void initilializeDriverAndFirmware(const std::string& wifi_instance_name) {
    // Skip if wifi instance is not set.
    if (wifi_instance_name == "") {
        return;
    }

    sp<IWifiChip> wifi_chip = getWifiChip(wifi_instance_name);
    ChipModeId mode_id;
    EXPECT_TRUE(configureChipToSupportIfaceType(
@@ -66,6 +71,11 @@ void initilializeDriverAndFirmware(const std::string& wifi_instance_name) {
// Helper function to deinitialize the driver and firmware
// using the vendor HAL HIDL interface.
void deInitilializeDriverAndFirmware(const std::string& wifi_instance_name) {
    // Skip if wifi instance is not set.
    if (wifi_instance_name == "") {
        return;
    }

    stopWifi(wifi_instance_name);
}

+5 −2
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ cc_library_static {
    defaults: ["VtsHalTargetTestDefaults"],
    srcs: ["supplicant_hidl_test_utils_1_1.cpp"],
    export_include_dirs: [
        "."
        ".",
    ],
    static_libs: [
        "VtsHalWifiV1_0TargetTestUtil",
@@ -54,5 +54,8 @@ cc_test {
        "libwifi-system",
        "libwifi-system-iface",
    ],
    test_suites: ["general-tests"],
    test_suites: [
        "general-tests",
        "vts-core",
    ],
}
+3 −40
Original line number Diff line number Diff line
@@ -14,45 +14,8 @@
 * limitations under the License.
 */

#include <android-base/logging.h>
#include <android/hardware/wifi/1.1/IWifi.h>
#include <android/hardware/wifi/supplicant/1.1/ISupplicant.h>

#include "supplicant_hidl_test_utils.h"
#include "wifi_hidl_test_utils.h"

class WifiSupplicantHidlEnvironment_1_1 : public WifiSupplicantHidlEnvironment {
   public:
    // get the test environment singleton
    static WifiSupplicantHidlEnvironment_1_1* Instance() {
        static WifiSupplicantHidlEnvironment_1_1* instance =
            new WifiSupplicantHidlEnvironment_1_1;
        return instance;
    }
    virtual void registerTestServices() override {
        registerTestService<::android::hardware::wifi::V1_0::IWifi>();
        registerTestService<::android::hardware::wifi::V1_1::IWifi>();
        registerTestService<
            ::android::hardware::wifi::supplicant::V1_0::ISupplicant>();
        registerTestService<
            ::android::hardware::wifi::supplicant::V1_1::ISupplicant>();
    }

   private:
    WifiSupplicantHidlEnvironment_1_1() {}
};

WifiSupplicantHidlEnvironment* gEnv =
    WifiSupplicantHidlEnvironment_1_1::Instance();

int main(int argc, char** argv) {
    ::testing::AddGlobalTestEnvironment(gEnv);
    ::testing::InitGoogleTest(&argc, argv);
    gEnv->init(&argc, argv);
    int status = gEnv->initFromOptions(argc, argv);
    if (status == 0) {
        int status = RUN_ALL_TESTS();
        LOG(INFO) << "Test result = " << status;
    }
    return status;
}
// TODO(b/143892896): Remove this file after wifi_hidl_test_utils.cpp is
// updated.
WifiSupplicantHidlEnvironment* gEnv = nullptr;
+31 −23
Original line number Diff line number Diff line
@@ -17,10 +17,12 @@
#include <android-base/logging.h>
#include <cutils/properties.h>

#include <VtsHalHidlTargetTestBase.h>

#include <VtsCoreUtil.h>
#include <android/hardware/wifi/1.0/IWifi.h>
#include <android/hardware/wifi/supplicant/1.0/types.h>
#include <android/hardware/wifi/supplicant/1.1/ISupplicant.h>
#include <hidl/GtestPrinter.h>
#include <hidl/ServiceManagement.h>

#include "supplicant_hidl_test_utils.h"
#include "supplicant_hidl_test_utils_1_1.h"
@@ -33,22 +35,11 @@ using ::android::hardware::wifi::supplicant::V1_0::IfaceType;
using ::android::hardware::wifi::supplicant::V1_1::ISupplicant;
using ::android::sp;

extern WifiSupplicantHidlEnvironment* gEnv;

class SupplicantHidlTest : public ::testing::VtsHalHidlTargetTestBase {
class SupplicantHidlTest : public SupplicantHidlTestBase {
   public:
    virtual void SetUp() override {
        startSupplicantAndWaitForHidlService();
        supplicant_ = getSupplicant_1_1();
        ASSERT_NE(supplicant_.get(), nullptr);
    }

    virtual void TearDown() override { stopSupplicant(); }
    virtual void SetUp() override { SupplicantHidlTestBase::SetUp(); }

   protected:
    // ISupplicant object used for all tests in this fixture.
    sp<ISupplicant> supplicant_;

    std::string getWlan0IfaceName() {
        std::array<char, PROPERTY_VALUE_MAX> buffer;
        property_get("wifi.interface", buffer.data(), "wlan0");
@@ -65,7 +56,7 @@ class SupplicantHidlTest : public ::testing::VtsHalHidlTargetTestBase {
/*
 * AddStaInterface
 */
TEST_F(SupplicantHidlTest, AddStaInterface) {
TEST_P(SupplicantHidlTest, AddStaInterface) {
    ISupplicant::IfaceInfo iface_info;
    iface_info.name = getWlan0IfaceName();
    iface_info.type = IfaceType::STA;
@@ -82,8 +73,8 @@ TEST_F(SupplicantHidlTest, AddStaInterface) {
/*
 * AddP2pInterface
 */
TEST_F(SupplicantHidlTest, AddP2pInterface) {
    if (!gEnv->isP2pOn) return;
TEST_P(SupplicantHidlTest, AddP2pInterface) {
    if (isP2pOn_) return;
    ISupplicant::IfaceInfo iface_info;
    iface_info.name = getP2pIfaceName();
    iface_info.type = IfaceType::P2P;
@@ -100,7 +91,7 @@ TEST_F(SupplicantHidlTest, AddP2pInterface) {
/*
 * RemoveStaInterface
 */
TEST_F(SupplicantHidlTest, RemoveStaInterface) {
TEST_P(SupplicantHidlTest, RemoveStaInterface) {
    ISupplicant::IfaceInfo iface_info;
    iface_info.name = getWlan0IfaceName();
    iface_info.type = IfaceType::STA;
@@ -122,8 +113,8 @@ TEST_F(SupplicantHidlTest, RemoveStaInterface) {
/*
 * RemoveP2pInterface
 */
TEST_F(SupplicantHidlTest, RemoveP2pInterface) {
    if (!gEnv->isP2pOn) return;
TEST_P(SupplicantHidlTest, RemoveP2pInterface) {
    if (isP2pOn_) return;
    ISupplicant::IfaceInfo iface_info;
    iface_info.name = getP2pIfaceName();
    iface_info.type = IfaceType::P2P;
@@ -146,6 +137,23 @@ TEST_F(SupplicantHidlTest, RemoveP2pInterface) {
 * Terminate
 * This terminates the service.
 */
TEST_F(SupplicantHidlTest, Terminate) {
    supplicant_->terminate();
TEST_P(SupplicantHidlTest, Terminate) { supplicant_->terminate(); }

static std::vector<std::string> get_wifi_instances() {
    std::vector<std::string> instances =
        android::hardware::getAllHalInstanceNames(
            android::hardware::wifi::V1_0::IWifi::descriptor);
    // Also test when wifi instance is not set.
    instances.push_back("");

    return instances;
}

INSTANTIATE_TEST_CASE_P(
    PerInstance, SupplicantHidlTest,
    testing::Combine(
        testing::ValuesIn(get_wifi_instances()),
        testing::ValuesIn(android::hardware::getAllHalInstanceNames(
            android::hardware::wifi::supplicant::V1_1::ISupplicant::
                descriptor))),
    android::hardware::PrintInstanceTupleNameToString<>);
+11 −7
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@
 * limitations under the License.
 */

#include <VtsHalHidlTargetTestBase.h>
#include <android-base/logging.h>

#include "supplicant_hidl_test_utils.h"
@@ -25,14 +24,19 @@ using ::android::hardware::wifi::supplicant::V1_1::ISupplicantStaIface;
using ::android::hardware::wifi::supplicant::V1_1::ISupplicantStaNetwork;
using ::android::sp;

sp<ISupplicant> getSupplicant_1_1() {
    return ISupplicant::castFrom(getSupplicant());
sp<ISupplicant> getSupplicant_1_1(const std::string& supplicant_instance_name,
                                  bool isP2pOn) {
    return ISupplicant::castFrom(
        getSupplicant(supplicant_instance_name, isP2pOn));
}

sp<ISupplicantStaIface> getSupplicantStaIface_1_1() {
    return ISupplicantStaIface::castFrom(getSupplicantStaIface());
sp<ISupplicantStaIface> getSupplicantStaIface_1_1(
    const sp<ISupplicant>& supplicant) {
    return ISupplicantStaIface::castFrom(getSupplicantStaIface(supplicant));
}

sp<ISupplicantStaNetwork> createSupplicantStaNetwork_1_1() {
    return ISupplicantStaNetwork::castFrom(createSupplicantStaNetwork());
sp<ISupplicantStaNetwork> createSupplicantStaNetwork_1_1(
    const sp<ISupplicant>& supplicant) {
    return ISupplicantStaNetwork::castFrom(
        createSupplicantStaNetwork(supplicant));
}
Loading