diff --git a/wifi/hostapd/1.0/vts/functional/hostapd_hidl_call_util.h b/wifi/hostapd/1.0/vts/functional/hostapd_hidl_call_util.h index ec7ebeeb46..b4b0ea604f 100644 --- a/wifi/hostapd/1.0/vts/functional/hostapd_hidl_call_util.h +++ b/wifi/hostapd/1.0/vts/functional/hostapd_hidl_call_util.h @@ -95,6 +95,14 @@ typename functionArgSaver::StorageT invokeMethod( EXPECT_TRUE(res.isOk()); return result_buffer.saved_values; } + +// Invokes |void method| on |object| without arguments. +template +void invokeVoidMethodWithoutArguments(MethodT method, ObjectT object) { + const auto& res = ((*object).*method)(); + EXPECT_TRUE(res.isOk()); +} + } // namespace detail } // namespace @@ -123,3 +131,9 @@ typename functionArgSaver::StorageT invokeMethod( std::remove_reference::type::method##_cb>( \ &std::remove_reference::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::type::method, \ + strong_pointer)) diff --git a/wifi/hostapd/1.0/vts/functional/hostapd_hidl_test.cpp b/wifi/hostapd/1.0/vts/functional/hostapd_hidl_test.cpp index 5a978ca39f..21d20645ae 100644 --- a/wifi/hostapd/1.0/vts/functional/hostapd_hidl_test.cpp +++ b/wifi/hostapd/1.0/vts/functional/hostapd_hidl_test.cpp @@ -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() { diff --git a/wifi/hostapd/1.1/vts/functional/hostapd_hidl_test.cpp b/wifi/hostapd/1.1/vts/functional/hostapd_hidl_test.cpp index 345cf312d4..131d518a48 100644 --- a/wifi/hostapd/1.1/vts/functional/hostapd_hidl_test.cpp +++ b/wifi/hostapd/1.1/vts/functional/hostapd_hidl_test.cpp @@ -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() { diff --git a/wifi/hostapd/1.2/vts/functional/hostapd_hidl_test.cpp b/wifi/hostapd/1.2/vts/functional/hostapd_hidl_test.cpp index a39f064aab..4ce37ac0a3 100644 --- a/wifi/hostapd/1.2/vts/functional/hostapd_hidl_test.cpp +++ b/wifi/hostapd/1.2/vts/functional/hostapd_hidl_test.cpp @@ -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;