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

Commit 504d3da1 authored by Pierre Couillaud's avatar Pierre Couillaud
Browse files

vts: wifi: softap and p2p are optional feature per CDD



backport to P changes to ensure optional features are only
exercised if advertised as supported.

Bug: 73543546
Bug: 73306751
Signed-off-by: default avatarPierre Couillaud <pierre@broadcom.com>
Change-Id: I809a3eb90dfcc8ab37fdd3e2c60e432c7a686a49
parent fcba8254
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -29,17 +29,22 @@ using ::android::hardware::wifi::V1_0::WifiBand;
using ::android::hardware::wifi::V1_0::WifiStatusCode;
using ::android::sp;

extern WifiHidlEnvironment* gEnv;
/**
 * Fixture to use for all AP Iface HIDL interface tests.
 */
class WifiApIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
   public:
    virtual void SetUp() override {
        if (!gEnv->isSoftApOn) return;
        wifi_ap_iface_ = getWifiApIface();
        ASSERT_NE(nullptr, wifi_ap_iface_.get());
    }

    virtual void TearDown() override { stopWifi(); }
    virtual void TearDown() override {
        if (!gEnv->isSoftApOn) return;
        stopWifi();
    }

   protected:
    sp<IWifiApIface> wifi_ap_iface_;
@@ -51,6 +56,7 @@ class WifiApIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
 * successfully created.
 */
TEST(WifiApIfaceHidlTestNoFixture, Create) {
    if (!gEnv->isSoftApOn) return;
    EXPECT_NE(nullptr, getWifiApIface().get());
    stopWifi();
}
@@ -60,6 +66,7 @@ TEST(WifiApIfaceHidlTestNoFixture, Create) {
 * Ensures that the correct interface type is returned for AP interface.
 */
TEST_F(WifiApIfaceHidlTest, GetType) {
    if (!gEnv->isSoftApOn) return;
    const auto& status_and_type = HIDL_INVOKE(wifi_ap_iface_, getType);
    EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_type.first.code);
    EXPECT_EQ(IfaceType::AP, status_and_type.second);
@@ -71,6 +78,7 @@ TEST_F(WifiApIfaceHidlTest, GetType) {
 * status code.
 */
TEST_F(WifiApIfaceHidlTest, SetCountryCode) {
    if (!gEnv->isSoftApOn) return;
    const android::hardware::hidl_array<int8_t, 2> kCountryCode{
        std::array<int8_t, 2>{{0x55, 0x53}}};
    EXPECT_EQ(WifiStatusCode::SUCCESS,
@@ -82,6 +90,7 @@ TEST_F(WifiApIfaceHidlTest, SetCountryCode) {
 * Ensures that we can retrieve valid frequencies for 2.4 GHz band.
 */
TEST_F(WifiApIfaceHidlTest, GetValidFrequenciesForBand) {
    if (!gEnv->isSoftApOn) return;
    const auto& status_and_freqs = HIDL_INVOKE(
        wifi_ap_iface_, getValidFrequenciesForBand, WifiBand::BAND_24GHZ);
    EXPECT_EQ(WifiStatusCode::SUCCESS, status_and_freqs.first.code);
+5 −0
Original line number Diff line number Diff line
@@ -352,6 +352,7 @@ TEST_F(WifiChipHidlTest, GetDebugHostWakeReasonStats) {
 * succeeds.
 */
TEST_F(WifiChipHidlTest, CreateApIface) {
    if (!gEnv->isSoftApOn) return;
    configureChipForIfaceType(IfaceType::AP, true);

    sp<IWifiApIface> iface;
@@ -366,6 +367,7 @@ TEST_F(WifiChipHidlTest, CreateApIface) {
 * iface name is returned via the list.
 */
TEST_F(WifiChipHidlTest, GetApIfaceNames) {
    if (!gEnv->isSoftApOn) return;
    configureChipForIfaceType(IfaceType::AP, true);

    const auto& status_and_iface_names1 =
@@ -398,6 +400,7 @@ TEST_F(WifiChipHidlTest, GetApIfaceNames) {
 * doesn't retrieve an iface object.
 */
TEST_F(WifiChipHidlTest, GetApIface) {
    if (!gEnv->isSoftApOn) return;
    configureChipForIfaceType(IfaceType::AP, true);

    sp<IWifiApIface> ap_iface;
@@ -424,6 +427,7 @@ TEST_F(WifiChipHidlTest, GetApIface) {
 * doesn't remove the iface.
 */
TEST_F(WifiChipHidlTest, RemoveApIface) {
    if (!gEnv->isSoftApOn) return;
    configureChipForIfaceType(IfaceType::AP, true);

    sp<IWifiApIface> ap_iface;
@@ -727,6 +731,7 @@ TEST_F(WifiChipHidlTest, RemoveStaIface) {
 * CreateRttController
 */
TEST_F(WifiChipHidlTest, CreateRttController) {
    if (!gEnv->isSoftApOn) return;
    configureChipForIfaceType(IfaceType::AP, true);

    sp<IWifiApIface> iface;
+9 −2
Original line number Diff line number Diff line
@@ -58,26 +58,33 @@ class WifiHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
   public:
    // Whether NaN feature is supported on the device.
    bool isNanOn = false;
    // Whether SoftAp feature is supported on the device.
    bool isSoftApOn = false;

    void usage(char* me, char* arg) {
        fprintf(stderr,
                "unrecognized option: %s\n\n"
                "usage: %s <gtest options> <test options>\n\n"
                "test options are:\n\n"
                "-N, --nan_on: Whether NAN feature is supported\n",
                "-N, --nan_on: Whether NAN feature is supported\n"
                "-S, --softap_on: Whether SOFTAP feature is supported\n",
                arg, me);
    }

    int initFromOptions(int argc, char** argv) {
        static struct option options[] = {{"nan_on", no_argument, 0, 'N'},
                                          {"softap_on", no_argument, 0, 'S'},
                                          {0, 0, 0, 0}};

        int c;
        while ((c = getopt_long(argc, argv, "N", options, NULL)) >= 0) {
        while ((c = getopt_long(argc, argv, "NS", options, NULL)) >= 0) {
            switch (c) {
                case 'N':
                    isNanOn = true;
                    break;
                case 'S':
                    isSoftApOn = true;
                    break;
                default:
                    usage(argv[0], argv[optind]);
                    return 2;
+20 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ cc_test {
    srcs: [
        "VtsHalWifiSupplicantV1_0TargetTest.cpp",
        "supplicant_hidl_test.cpp",
        "supplicant_p2p_iface_hidl_test.cpp",
        "supplicant_sta_iface_hidl_test.cpp",
        "supplicant_sta_network_hidl_test.cpp",
    ],
@@ -55,3 +54,23 @@ cc_test {
        "libwifi-system-iface",
    ],
}

cc_test {
    name: "VtsHalWifiSupplicantP2pV1_0TargetTest",
    defaults: ["VtsHalTargetTestDefaults"],
    srcs: [
        "VtsHalWifiSupplicantV1_0TargetTest.cpp",
        "supplicant_p2p_iface_hidl_test.cpp",
    ],
    static_libs: [
        "VtsHalWifiV1_0TargetTestUtil",
        "VtsHalWifiSupplicantV1_0TargetTestUtil",
        "android.hardware.wifi.supplicant@1.0",
        "android.hardware.wifi.supplicant@1.1",
        "android.hardware.wifi@1.0",
        "libcrypto",
        "libgmock",
        "libwifi-system",
        "libwifi-system-iface",
    ],
}
 No newline at end of file
+7 −2
Original line number Diff line number Diff line
@@ -44,7 +44,12 @@ 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;
}
Loading