diff options
| author | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-18 07:12:27 +0000 |
|---|---|---|
| committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-18 07:12:27 +0000 |
| commit | ef583a24cfa2f509ec3c390243e964046783e6ec (patch) | |
| tree | 0748f6bbfc02bfffc6802c8632752fe7721f0b81 | |
| parent | df3f28dfb4c9ec029e84dbbc7bf1005bc5be1901 (diff) | |
| parent | e812feb56f7ed63e23995149896e3e2003449eb4 (diff) | |
| download | android_hardware_interfaces-ef583a24cfa2f509ec3c390243e964046783e6ec.tar.gz android_hardware_interfaces-ef583a24cfa2f509ec3c390243e964046783e6ec.tar.bz2 android_hardware_interfaces-ef583a24cfa2f509ec3c390243e964046783e6ec.zip | |
release-request-f4ecf242-5d1c-45e0-8c7c-ede48d1a9e82-for-git_oc-release-4111650 snap-temp-L02200000075283731
Change-Id: I10c35a31fe6b0b462ca24c45096189b8d5a009f7
| -rw-r--r-- | camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp | 8 | ||||
| -rw-r--r-- | nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp | 114 |
2 files changed, 107 insertions, 15 deletions
diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp index c8e44d3d4..c350e31ae 100644 --- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp +++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp @@ -1680,7 +1680,8 @@ TEST_F(CameraHidlTest, getCameraCharacteristics) { ASSERT_EQ(Status::OK, status); const camera_metadata_t* metadata = (camera_metadata_t*) chars.data(); size_t expectedSize = chars.size(); - ASSERT_EQ(0, validate_camera_metadata_structure(metadata, &expectedSize)); + int result = validate_camera_metadata_structure(metadata, &expectedSize); + ASSERT_TRUE(result == 0 || result == CAMERA_METADATA_VALIDATION_SHIFTED); size_t entryCount = get_camera_metadata_entry_count(metadata); // TODO: we can do better than 0 here. Need to check how many required // characteristics keys we've defined. @@ -1997,8 +1998,9 @@ TEST_F(CameraHidlTest, constructDefaultRequestSettings) { const camera_metadata_t* metadata = (camera_metadata_t*) req.data(); size_t expectedSize = req.size(); - ASSERT_EQ(0, validate_camera_metadata_structure( - metadata, &expectedSize)); + int result = validate_camera_metadata_structure( + metadata, &expectedSize); + ASSERT_TRUE(result == 0 || result == CAMERA_METADATA_VALIDATION_SHIFTED); size_t entryCount = get_camera_metadata_entry_count(metadata); // TODO: we can do better than 0 here. Need to check how many required // request keys we've defined for each template diff --git a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp index e77cc1492..094e8a16e 100644 --- a/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp +++ b/nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp @@ -52,7 +52,8 @@ using ::android::sp; #define LOOP_BACK_HEADER_SIZE 3 #define SYNTAX_ERROR 5 #define NUMBER_LOOPS 3922 -#define VERSION 0x11 +#define NCI_VERSION_1_1 0x11 +#define NCI_VERSION_2 0x20 #define TIMEOUT_PERIOD 5 constexpr char kCallbackNameSendEvent[] = "sendEvent"; @@ -108,6 +109,42 @@ class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { EXPECT_TRUE(res.no_timeout); EXPECT_EQ(NfcEvent::OPEN_CPLT, res.args->last_event_); EXPECT_EQ(NfcStatus::OK, res.args->last_status_); + + /* Get the NCI version that the device supports */ + std::vector<uint8_t> cmd = CORE_RESET_CMD; + NfcData data = cmd; + EXPECT_EQ(data.size(), nfc_->write(data)); + // Wait for CORE_RESET_RSP + res = nfc_cb_->WaitForCallback(kCallbackNameSendData); + EXPECT_TRUE(res.no_timeout); + EXPECT_GE(6ul, res.args->last_data_.size()); + EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); + if (res.args->last_data_.size() == 6) { + nci_version = res.args->last_data_[4]; + } else { + EXPECT_EQ(4ul, res.args->last_data_.size()); + nci_version = NCI_VERSION_2; + res = nfc_cb_->WaitForCallback(kCallbackNameSendData); + EXPECT_TRUE(res.no_timeout); + } + + /* + * Close the hal and then re-open to make sure we are in a predictable + * state for all the tests. + */ + EXPECT_EQ(NfcStatus::OK, nfc_->close()); + // Wait for CLOSE_CPLT event + res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); + EXPECT_TRUE(res.no_timeout); + EXPECT_EQ(NfcEvent::CLOSE_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_); } virtual void TearDown() override { @@ -119,6 +156,9 @@ class NfcHidlTest : public ::testing::VtsHalHidlTargetTestBase { EXPECT_EQ(NfcStatus::OK, res.args->last_status_); } + /* NCI version the device supports + * 0x11 for NCI 1.1, 0x20 for NCI 2.0 and so forth */ + uint8_t nci_version; sp<INfc> nfc_; sp<NfcClientCallback> nfc_cb_; }; @@ -154,10 +194,26 @@ TEST_F(NfcHidlTest, WriteCoreReset) { // Wait for CORE_RESET_RSP auto res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); - 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_GE(1ul, res.args->last_data_[5]); + + /* The response/notification format for CORE_RESET_CMD differs + * with NCI 1.0 and 2.0. */ + if (nci_version <= NCI_VERSION_1_1) { + EXPECT_EQ(6ul, res.args->last_data_.size()); + EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); + EXPECT_GE(NCI_VERSION_1_1, res.args->last_data_[4]); + EXPECT_GE(1ul, res.args->last_data_[5]); + } else { + EXPECT_EQ(4ul, res.args->last_data_.size()); + EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); + // Wait for CORE_RESET_NTF + res = nfc_cb_->WaitForCallback(kCallbackNameSendData); + EXPECT_TRUE(res.no_timeout); + // Check if reset trigger was due to CORE_RESET_CMD + EXPECT_LE(8ul, res.args->last_data_.size()); + EXPECT_EQ(2ul, res.args->last_data_[3]); + EXPECT_GE(1ul, res.args->last_data_[4]); + EXPECT_EQ(NCI_VERSION_2, res.args->last_data_[5]); + } } /* @@ -173,10 +229,26 @@ TEST_F(NfcHidlTest, WriteCoreResetConfigReset) { // Wait for CORE_RESET_RSP auto res = nfc_cb_->WaitForCallback(kCallbackNameSendData); EXPECT_TRUE(res.no_timeout); - 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(1ul, res.args->last_data_[5]); + + /* The response/notification format for CORE_RESET_CMD differs + * with NCI 1.0 and 2.0. */ + if (nci_version <= NCI_VERSION_1_1) { + EXPECT_EQ(6ul, res.args->last_data_.size()); + EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); + EXPECT_GE(NCI_VERSION_1_1, res.args->last_data_[4]); + EXPECT_EQ(1ul, res.args->last_data_[5]); + } else { + EXPECT_EQ(4ul, res.args->last_data_.size()); + EXPECT_EQ((int)NfcStatus::OK, res.args->last_data_[3]); + // Wait for CORE_RESET_NTF + res = nfc_cb_->WaitForCallback(kCallbackNameSendData); + EXPECT_TRUE(res.no_timeout); + // Check if reset trigger was due to CORE_RESET_CMD + EXPECT_LE(8ul, res.args->last_data_.size()); + EXPECT_EQ(2ul, res.args->last_data_[3]); + EXPECT_EQ(1ul, res.args->last_data_[4]); + EXPECT_EQ(NCI_VERSION_2, res.args->last_data_[5]); + } } /* @@ -214,7 +286,13 @@ TEST_F(NfcHidlTest, WriteInvalidAndThenValidCommand) { 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]); + + /* NCI 2.0 sends CORE_RESET_NTF everytime. */ + if (nci_version == NCI_VERSION_2) { + // Wait for CORE_RESET_NTF + res = nfc_cb_->WaitForCallback(kCallbackNameSendData); + EXPECT_TRUE(res.no_timeout); + } cmd = CORE_INIT_CMD; data = cmd; @@ -268,7 +346,13 @@ TEST_F(NfcHidlTest, Bandwidth) { 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]); + + /* NCI 2.0 sends CORE_RESET_NTF everytime. */ + if (nci_version == NCI_VERSION_2) { + // Wait for CORE_RESET_NTF + res = nfc_cb_->WaitForCallback(kCallbackNameSendData); + EXPECT_TRUE(res.no_timeout); + } cmd = CORE_INIT_CMD; data = cmd; @@ -379,7 +463,13 @@ TEST_F(NfcHidlTest, CoreInitialized) { // most devices. for (int i = 10; i <= 16; i++) { data[0] = i; - EXPECT_EQ(NfcStatus::OK, nfc_->coreInitialized(data)); + NfcStatus status = nfc_->coreInitialized(data); + + /* In case coreInitialized returned FAILED, do not wait for + * POST_INIT_CLPT event. */ + if (status == NfcStatus::FAILED) continue; + + EXPECT_EQ(NfcStatus::OK, status); // Wait for NfcEvent.POST_INIT_CPLT auto res = nfc_cb_->WaitForCallback(kCallbackNameSendEvent); EXPECT_TRUE(res.no_timeout); |
