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

Commit 0a43f6dc authored by lesl's avatar lesl Committed by Les Lee
Browse files

wifi: Call terminate in VTS teardown

When OEM register different hostapd instance without update the StopHostapd.
It will cause VTS clean fail because hostapd process name is the new
one.
Call terminate to request clean HAL state.

Bug: 161682236
Bug: 167636313
Test: atest -c VtsHalWifiHostapdV1_2TargetTest
Test: atest -c VtsHalWifiHostapdV1_1TargetTest
Test: atest -c VtsHalWifiHostapdV1_0TargetTest
Change-Id: If56e5b5351abd31865150bdf97d27674dbbc4257
parent 19cc21ea
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -95,6 +95,14 @@ typename functionArgSaver<CallbackT>::StorageT invokeMethod(
    EXPECT_TRUE(res.isOk());
    return result_buffer.saved_values;
}

// Invokes |void method| on |object| without arguments.
template <typename MethodT, typename ObjectT>
void invokeVoidMethodWithoutArguments(MethodT method, ObjectT object) {
    const auto& res = ((*object).*method)();
    EXPECT_TRUE(res.isOk());
}

}  // namespace detail
}  // namespace

@@ -123,3 +131,9 @@ typename functionArgSaver<CallbackT>::StorageT invokeMethod(
        std::remove_reference<decltype(*strong_pointer)>::type::method##_cb>( \
        &std::remove_reference<decltype(*strong_pointer)>::type::method,      \
        strong_pointer, ##__VA_ARGS__))

// Invokes |void method| on |strong_pointer| without arguments.
#define HIDL_INVOKE_VOID_WITHOUT_ARGUMENTS(strong_pointer, method)       \
    (detail::invokeVoidMethodWithoutArguments(                           \
        &std::remove_reference<decltype(*strong_pointer)>::type::method, \
        strong_pointer))
+4 −1
Original line number Diff line number Diff line
@@ -55,7 +55,10 @@ class HostapdHidlTest
        ASSERT_NE(hostapd_.get(), nullptr);
    }

    virtual void TearDown() override { stopHostapd(wifi_instance_name_); }
    virtual void TearDown() override {
        HIDL_INVOKE_VOID_WITHOUT_ARGUMENTS(hostapd_, terminate);
        stopHostapd(wifi_instance_name_);
    }

   protected:
    std::string getPrimaryWlanIfaceName() {
+4 −1
Original line number Diff line number Diff line
@@ -58,7 +58,10 @@ class HostapdHidlTest
        ASSERT_NE(hostapd_.get(), nullptr);
    }

    virtual void TearDown() override { stopHostapd(wifi_instance_name_); }
    virtual void TearDown() override {
        HIDL_INVOKE_VOID_WITHOUT_ARGUMENTS(hostapd_, terminate);
        stopHostapd(wifi_instance_name_);
    }

   protected:
    std::string getPrimaryWlanIfaceName() {
+4 −1
Original line number Diff line number Diff line
@@ -72,7 +72,10 @@ class HostapdHidlTest
            "wifi_softap_wpa3_sae_supported");
    }

    virtual void TearDown() override { stopHostapd(wifi_instance_name_); }
    virtual void TearDown() override {
        HIDL_INVOKE_VOID_WITHOUT_ARGUMENTS(hostapd_, terminate);
        stopHostapd(wifi_instance_name_);
    }

   protected:
    bool isWpa3SaeSupport_ = false;