From 8d3cb52eadb737e3cee092a6e1596462d51b3cb3 Mon Sep 17 00:00:00 2001 From: Bruno Carneiro Date: Thu, 11 Apr 2024 17:33:39 -0300 Subject: [PATCH] Improve OpenAfterOpen VTS test A callback should be executed every time the NFC interface is opened, even in OpenAfterOpen scenarios. If a callback is not executed, a crash may occur where the NfcService hangs while waiting for an OPEN_CPLT event. Bug: 327582461 Merged-In: Idd78c0dae944e3d39a6828b43db5a608adbaf1d9 Change-Id: Idd78c0dae944e3d39a6828b43db5a608adbaf1d9 Signed-off-by: Bruno Carneiro (cherry picked from commit 056aa140ca906e77fdbd80776d09827481b59173) --- nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index 8210ff04cf..2fc9e65926 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -562,7 +562,18 @@ TEST_P(NfcHidlTest, CloseAfterClose) { */ TEST_P(NfcHidlTest, OpenAfterOpen) { EXPECT_EQ(NfcStatus::OK, nfc_->open(nfc_cb_)); + // Wait for OPEN_CPLT event + auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); + EXPECT_TRUE(res.no_timeout); + EXPECT_EQ(NfcEvent::OPEN_CPLT, res.args->last_event_); + EXPECT_EQ(NfcStatus::OK, res.args->last_status_); + EXPECT_EQ(NfcStatus::OK, nfc_->open(nfc_cb_)); + // Wait for OPEN_CPLT event + res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); + EXPECT_TRUE(res.no_timeout); + EXPECT_EQ(NfcEvent::OPEN_CPLT, res.args->last_event_); + EXPECT_EQ(NfcStatus::OK, res.args->last_status_); } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(NfcHidlTest);