mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
[VTS][AWARE]Setting callbacktype type to invalid value before invoking HIDL call
Avoid race condition between event callback and wait context. Make callbacktype to invalid before call function to change it. Test: atest VtsHalWifiNanV1_0TargetTest VtsHalWifiNanV1_2TargetTest Bug: 133484330 Change-Id: I9211c3e172727f56d0cceaf91b98f8d5b3c7fc7e
This commit is contained in:
@@ -91,12 +91,12 @@ class WifiNanIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
||||
};
|
||||
|
||||
/* Test code calls this function to wait for data/event callback */
|
||||
/* Must set callbackType = INVALID before call this function */
|
||||
inline std::cv_status wait(CallbackType waitForCallbackType) {
|
||||
std::unique_lock<std::mutex> lock(mtx_);
|
||||
|
||||
EXPECT_NE(INVALID, waitForCallbackType); // can't ASSERT in a non-void-returning method
|
||||
|
||||
callbackType = INVALID;
|
||||
std::cv_status status = std::cv_status::no_timeout;
|
||||
auto now = std::chrono::system_clock::now();
|
||||
while (count_ == 0) {
|
||||
@@ -469,6 +469,7 @@ TEST(WifiNanIfaceHidlTestNoFixture, FailOnIfaceInvalid) {
|
||||
*/
|
||||
TEST_F(WifiNanIfaceHidlTest, getCapabilitiesRequest) {
|
||||
uint16_t inputCmdId = 10;
|
||||
callbackType = INVALID;
|
||||
ASSERT_EQ(WifiStatusCode::SUCCESS,
|
||||
HIDL_INVOKE(iwifiNanIface, getCapabilitiesRequest, inputCmdId).code);
|
||||
// wait for a callback
|
||||
|
||||
@@ -100,13 +100,13 @@ class WifiNanIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
||||
};
|
||||
|
||||
/* Test code calls this function to wait for data/event callback */
|
||||
/* Must set callbackType = INVALID before call this function */
|
||||
inline std::cv_status wait(CallbackType waitForCallbackType) {
|
||||
std::unique_lock<std::mutex> lock(mtx_);
|
||||
|
||||
EXPECT_NE(INVALID, waitForCallbackType); // can't ASSERT in a
|
||||
// non-void-returning method
|
||||
|
||||
callbackType = INVALID;
|
||||
std::cv_status status = std::cv_status::no_timeout;
|
||||
auto now = std::chrono::system_clock::now();
|
||||
while (count_ == 0) {
|
||||
@@ -475,6 +475,7 @@ TEST(WifiNanIfaceHidlTestNoFixture, Create) {
|
||||
*/
|
||||
TEST_F(WifiNanIfaceHidlTest, enableRequest_1_2InvalidArgs) {
|
||||
uint16_t inputCmdId = 10;
|
||||
callbackType = INVALID;
|
||||
NanEnableRequest nanEnableRequest = {};
|
||||
NanConfigRequestSupplemental nanConfigRequestSupp = {};
|
||||
ASSERT_EQ(WifiStatusCode::SUCCESS,
|
||||
@@ -509,6 +510,7 @@ TEST_F(WifiNanIfaceHidlTest, enableRequest_1_2ShimInvalidArgs) {
|
||||
*/
|
||||
TEST_F(WifiNanIfaceHidlTest, configRequest_1_2InvalidArgs) {
|
||||
uint16_t inputCmdId = 10;
|
||||
callbackType = INVALID;
|
||||
NanConfigRequest nanConfigRequest = {};
|
||||
NanConfigRequestSupplemental nanConfigRequestSupp = {};
|
||||
ASSERT_EQ(WifiStatusCode::SUCCESS,
|
||||
|
||||
Reference in New Issue
Block a user