summaryrefslogtreecommitdiffstats
path: root/wifi
diff options
context:
space:
mode:
authorNate Jiang <qiangjiang@google.com>2019-05-28 20:05:25 -0700
committerNate Jiang <qiangjiang@google.com>2019-05-29 10:41:55 -0700
commit18408a93d9da2f757618e6ecafa2798a65ee5816 (patch)
tree5d292f8663034b4b51dd66f76776183256459f8d /wifi
parent87592de6f2c3fccbcaf3705e909b78bd435f2aa7 (diff)
downloadandroid_hardware_interfaces-18408a93d9da2f757618e6ecafa2798a65ee5816.tar.gz
android_hardware_interfaces-18408a93d9da2f757618e6ecafa2798a65ee5816.tar.bz2
android_hardware_interfaces-18408a93d9da2f757618e6ecafa2798a65ee5816.zip
[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
Diffstat (limited to 'wifi')
-rw-r--r--wifi/1.0/vts/functional/wifi_nan_iface_hidl_test.cpp3
-rw-r--r--wifi/1.2/vts/functional/wifi_nan_iface_hidl_test.cpp4
2 files changed, 5 insertions, 2 deletions
diff --git a/wifi/1.0/vts/functional/wifi_nan_iface_hidl_test.cpp b/wifi/1.0/vts/functional/wifi_nan_iface_hidl_test.cpp
index 85bcccd23..64b4fb6d1 100644
--- a/wifi/1.0/vts/functional/wifi_nan_iface_hidl_test.cpp
+++ b/wifi/1.0/vts/functional/wifi_nan_iface_hidl_test.cpp
@@ -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
diff --git a/wifi/1.2/vts/functional/wifi_nan_iface_hidl_test.cpp b/wifi/1.2/vts/functional/wifi_nan_iface_hidl_test.cpp
index cc36faeaf..4dbc82bd9 100644
--- a/wifi/1.2/vts/functional/wifi_nan_iface_hidl_test.cpp
+++ b/wifi/1.2/vts/functional/wifi_nan_iface_hidl_test.cpp
@@ -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,