summaryrefslogtreecommitdiff
path: root/tests/msgq/1.0/default/TestMsgQ.cpp
diff options
context:
space:
mode:
authorDevin Moore <devinmoore@google.com>2021-01-18 16:11:20 -0800
committerDevin Moore <devinmoore@google.com>2021-01-22 13:30:19 -0800
commit17365e56a26fbc10aba10e7e0141d0c4f4937614 (patch)
tree726762f5751c09b074ae489b4cf3d2a0b28ae40d /tests/msgq/1.0/default/TestMsgQ.cpp
parent600b7775ef945b70b211d67bf2a3285a0071c252 (diff)
Use NativeHandle in MQDescriptor instead of ParcelFileDescriptor
android.hardware.common.fmq.MQDescriptor needs to handle multiple file descriptors, so changing from ParcelFileDescriptor to android.hardware.common.NativeHandle. android.hardware.common.fmq.GrantorDescriptor needs to keep track of the fdIndex as well. Bug: 176912570 Test: atest fmq_unit_tests fmq_test Change-Id: I15f2393e6c420ae5394322b28c4523fa80f7dcc7
Diffstat (limited to 'tests/msgq/1.0/default/TestMsgQ.cpp')
-rw-r--r--tests/msgq/1.0/default/TestMsgQ.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/msgq/1.0/default/TestMsgQ.cpp b/tests/msgq/1.0/default/TestMsgQ.cpp
index 44737378b3..4726ffe5e9 100644
--- a/tests/msgq/1.0/default/TestMsgQ.cpp
+++ b/tests/msgq/1.0/default/TestMsgQ.cpp
@@ -41,10 +41,19 @@ Return<bool> TestMsgQ::configureFmqSyncReadWrite(
return true;
}
-Return<void> TestMsgQ::getFmqUnsyncWrite(bool configureFmq, getFmqUnsyncWrite_cb _hidl_cb) {
+Return<void> TestMsgQ::getFmqUnsyncWrite(bool configureFmq, bool userFd,
+ getFmqUnsyncWrite_cb _hidl_cb) {
if (configureFmq) {
static constexpr size_t kNumElementsInQueue = 1024;
- mFmqUnsynchronized.reset(new (std::nothrow) MessageQueueUnsync(kNumElementsInQueue));
+ static constexpr size_t kElementSizeBytes = sizeof(int32_t);
+ android::base::unique_fd ringbufferFd;
+ if (userFd) {
+ ringbufferFd.reset(
+ ::ashmem_create_region("UnsyncWrite", kNumElementsInQueue * kElementSizeBytes));
+ }
+ mFmqUnsynchronized.reset(new (std::nothrow) MessageQueueUnsync(
+ kNumElementsInQueue, false, std::move(ringbufferFd),
+ kNumElementsInQueue * kElementSizeBytes));
}
if ((mFmqUnsynchronized == nullptr) ||
(mFmqUnsynchronized->isValid() == false)) {