Merge "Fix AIDL sensors VTS test" into tm-dev am: 890208a598
Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/17714215
Change-Id: I83896faee0a5547205de953e68cb50779459f5f7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/sensors/aidl/android/hardware/sensors/ISensors.aidl b/sensors/aidl/android/hardware/sensors/ISensors.aidl
index 2ac1884..2c68489 100644
--- a/sensors/aidl/android/hardware/sensors/ISensors.aidl
+++ b/sensors/aidl/android/hardware/sensors/ISensors.aidl
@@ -229,8 +229,7 @@
*
* @param mem shared memory info data structure.
* @param out channelHandle The registered channel handle.
- * @return The direct channel handle, which is positive if successfully registered, and -1
- * otherwise.
+ * @return The direct channel handle, which is positive if successfully registered.
* @return Status::ok on success
* EX_ILLEGAL_ARGUMENT if the shared memory information is not consistent.
* EX_UNSUPPORTED_OPERATION if this functionality is unsupported.
@@ -245,7 +244,7 @@
* @see OperationMode
* @param mode The operation mode.
* @return Status::ok on success
- * EX_UNSUPPORTED_OPERATION if requested mode is not supported.
+ * EX_UNSUPPORTED_OPERATION or EX_ILLEGAL_ARGUMENT if requested mode is not supported.
* EX_SECURITY if the operation is not allowed.
*/
void setOperationMode(in OperationMode mode);
diff --git a/sensors/aidl/default/multihal/HalProxyAidl.cpp b/sensors/aidl/default/multihal/HalProxyAidl.cpp
index 628914c..e6bcdad 100644
--- a/sensors/aidl/default/multihal/HalProxyAidl.cpp
+++ b/sensors/aidl/default/multihal/HalProxyAidl.cpp
@@ -141,10 +141,6 @@
*_aidl_return = reportToken;
});
- if (!status.isOk()) {
- *_aidl_return = -1;
- }
-
return status;
}
@@ -216,10 +212,6 @@
native_handle_delete(const_cast<native_handle_t *>(
sharedMemInfo.memoryHandle.getNativeHandle()));
- if (!status.isOk()) {
- *_aidl_return = -1;
- }
-
return status;
}
diff --git a/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp b/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp
index 83d0dc9..d536e29 100644
--- a/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp
+++ b/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp
@@ -599,10 +599,12 @@
ASSERT_TRUE(getSensors()->setOperationMode(ISensors::OperationMode::DATA_INJECTION).isOk());
ASSERT_TRUE(getSensors()->setOperationMode(ISensors::OperationMode::NORMAL).isOk());
} else {
- ASSERT_EQ(getSensors()
- ->setOperationMode(ISensors::OperationMode::DATA_INJECTION)
- .getExceptionCode(),
- EX_UNSUPPORTED_OPERATION);
+ int errorCode =
+ getSensors()
+ ->setOperationMode(ISensors::OperationMode::DATA_INJECTION)
+ .getExceptionCode();
+ ASSERT_TRUE((errorCode == EX_UNSUPPORTED_OPERATION) ||
+ (errorCode == EX_ILLEGAL_ARGUMENT));
}
}
@@ -938,10 +940,10 @@
if (isDirectReportRateSupported(sensor, rateLevel)) {
ASSERT_TRUE(status.isOk());
if (rateLevel != ISensors::RateLevel::STOP) {
- ASSERT_GT(*reportToken, 0);
- } else {
- ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT);
+ ASSERT_GT(*reportToken, 0);
}
+ } else {
+ ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT);
}
}
@@ -982,11 +984,15 @@
::ndk::ScopedAStatus status = registerDirectChannel(mem->getSharedMemInfo(), &channelHandle);
if (supportsSharedMemType) {
ASSERT_TRUE(status.isOk());
- ASSERT_EQ(channelHandle, 0);
+ ASSERT_GT(channelHandle, 0);
+
+ // Verify that the memory has been zeroed
+ for (size_t i = 0; i < mem->getSize(); i++) {
+ ASSERT_EQ(buffer[i], 0x00);
+ }
} else {
int32_t error = supportsAnyDirectChannel ? EX_ILLEGAL_ARGUMENT : EX_UNSUPPORTED_OPERATION;
ASSERT_EQ(status.getExceptionCode(), error);
- ASSERT_EQ(channelHandle, -1);
}
*directChannelHandle = channelHandle;
}
@@ -1038,7 +1044,7 @@
// Verify that a sensor handle of -1 is only acceptable when using RateLevel::STOP
ndk::ScopedAStatus status = configDirectReport(-1 /* sensorHandle */, directChannelHandle,
ISensors::RateLevel::NORMAL, &reportToken);
- ASSERT_EQ(status.getServiceSpecificError(), android::BAD_VALUE);
+ ASSERT_EQ(status.getExceptionCode(), EX_ILLEGAL_ARGUMENT);
status = configDirectReport(-1 /* sensorHandle */, directChannelHandle,
ISensors::RateLevel::STOP, &reportToken);