summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-06-18 07:12:27 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-06-18 07:12:27 +0000
commitef583a24cfa2f509ec3c390243e964046783e6ec (patch)
tree0748f6bbfc02bfffc6802c8632752fe7721f0b81
parentdf3f28dfb4c9ec029e84dbbc7bf1005bc5be1901 (diff)
parente812feb56f7ed63e23995149896e3e2003449eb4 (diff)
downloadandroid_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.cpp8
-rw-r--r--nfc/1.0/vts/functional/VtsHalNfcV1_0TargetTest.cpp114
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);