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

Commit b5beef17 authored by Ruchi Kandoi's avatar Ruchi Kandoi Committed by android-build-merger
Browse files

NFC: vts: Add commands to reset the NFC controller before other commands am: 209a274c

am: cd825026

Change-Id: I743c32a2b475540ba9df2137d90415c11222ea7d
parents 40699c4d cd825026
Loading
Loading
Loading
Loading
+99 −62
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ using ::android::sp;
  { 0x20, 0x00, 0x01, 0x01 }
#define CORE_CONN_CREATE_CMD \
  { 0x20, 0x04, 0x02, 0x01, 0x00 }
#define CORE_INIT_CMD \
    { 0x20, 0x01, 0x00 }
#define INVALID_COMMAND \
  { 0x20, 0x00, 0x00 }
#define FAULTY_DATA_PACKET \
@@ -155,7 +157,7 @@ TEST_F(NfcHidlTest, WriteCoreReset) {
  EXPECT_EQ(6ul, res.args->last_data_.size());
  EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);
  EXPECT_GE(VERSION, res.args->last_data_[4]);
  EXPECT_EQ(0ul, res.args->last_data_[5]);
  EXPECT_GE(1ul, res.args->last_data_[5]);
}

/*
@@ -205,9 +207,26 @@ TEST_F(NfcHidlTest, WriteInvalidCommand) {
 * Check the response
 */
TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) {
  // Send an Error Data Packet
  std::vector<uint8_t> cmd = FAULTY_DATA_PACKET;
    std::vector<uint8_t> cmd = CORE_RESET_CMD;
    NfcData data = cmd;
    EXPECT_EQ(data.size(), nfc_->write(data));
    // Wait for CORE_RESET_RSP
    auto res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);

    cmd = CORE_INIT_CMD;
    data = cmd;
    EXPECT_EQ(data.size(), nfc_->write(data));
    // Wait for CORE_INIT_RSP
    res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);

    // Send an Error Data Packet
    cmd = FAULTY_DATA_PACKET;
    data = cmd;
    size_t size = data.size();

    for (int i = 0; i < 100; i++) {
@@ -215,7 +234,7 @@ TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) {
        data[size - 1] = 0xFF;
        EXPECT_EQ(data.size(), nfc_->write(data));
        // Wait for CORE_INTERFACE_ERROR_NTF
    auto res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
        res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
        EXPECT_TRUE(res.no_timeout);
        EXPECT_EQ(5ul, res.args->last_data_.size());
        EXPECT_EQ(0x60, res.args->last_data_[0]);
@@ -228,7 +247,7 @@ TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) {
  data = cmd;
  EXPECT_EQ(data.size(), nfc_->write(data));
  // Wait for CORE_CONN_CREATE_RSP
  auto res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
  res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
  EXPECT_TRUE(res.no_timeout);
  EXPECT_EQ(7ul, res.args->last_data_.size());
  EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);
@@ -242,12 +261,30 @@ TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) {
 * Repeat to send total of 1Mb data
 */
TEST_F(NfcHidlTest, Bandwidth) {
  std::vector<uint8_t> cmd = CORE_CONN_CREATE_CMD;
    std::vector<uint8_t> cmd = CORE_RESET_CMD;
    NfcData data = cmd;
    EXPECT_EQ(data.size(), nfc_->write(data));
  // Wait for CORE_CONN_CREATE_RSP
    // Wait for CORE_RESET_RSP
    auto res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);

    cmd = CORE_INIT_CMD;
    data = cmd;
    EXPECT_EQ(data.size(), nfc_->write(data));
    // Wait for CORE_INIT_RSP
    res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);

    cmd = CORE_CONN_CREATE_CMD;
    data = cmd;
    EXPECT_EQ(data.size(), nfc_->write(data));
    // Wait for CORE_CONN_CREATE_RSP
    res = nfc_cb_->WaitForCallback(kCallbackNameSendData);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_TRUE(res.no_timeout);
    EXPECT_EQ(7ul, res.args->last_data_.size());
    EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]);
    uint8_t conn_id = res.args->last_data_[6];