diff options
author | Devin Moore <devinmoore@google.com> | 2021-01-25 18:20:54 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-01-25 18:20:54 +0000 |
commit | 1f00c21c28715bc102138561b9218aaa088589bd (patch) | |
tree | 97f8513604705b33d7c8994337d6f4d030302f0b /tests | |
parent | ec203cf2fb69167c4d6829d7060fa253ca9ce900 (diff) | |
parent | 17365e56a26fbc10aba10e7e0141d0c4f4937614 (diff) |
Merge "Use NativeHandle in MQDescriptor instead of ParcelFileDescriptor"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/msgq/1.0/ITestMsgQ.hal | 5 | ||||
-rw-r--r-- | tests/msgq/1.0/default/Android.bp | 3 | ||||
-rw-r--r-- | tests/msgq/1.0/default/TestMsgQ.cpp | 13 | ||||
-rw-r--r-- | tests/msgq/1.0/default/TestMsgQ.h | 3 |
4 files changed, 19 insertions, 5 deletions
diff --git a/tests/msgq/1.0/ITestMsgQ.hal b/tests/msgq/1.0/ITestMsgQ.hal index bd10237c90..0cf9c7c71e 100644 --- a/tests/msgq/1.0/ITestMsgQ.hal +++ b/tests/msgq/1.0/ITestMsgQ.hal @@ -41,12 +41,15 @@ interface ITestMsgQ { * * @param configureFmq The server sets up a new unsynchronized FMQ if * this parameter is true. + * @param userFd True to initialize the message queue with a user supplied + * file descriptor for the ring buffer. + * False to let the message queue use a single FD for everything. * * @return ret True if successful. * @return mqDesc This structure describes the unsynchronized FMQ that was * set up by the service. Client can use it to set up the FMQ at its end. */ - getFmqUnsyncWrite(bool configureFmq) generates(bool ret, fmq_unsync<int32_t> mqDesc); + getFmqUnsyncWrite(bool configureFmq, bool userFd) generates(bool ret, fmq_unsync<int32_t> mqDesc); /** * This method request the service to write into the synchronized read/write diff --git a/tests/msgq/1.0/default/Android.bp b/tests/msgq/1.0/default/Android.bp index 6e7cd4478b..a50206bb75 100644 --- a/tests/msgq/1.0/default/Android.bp +++ b/tests/msgq/1.0/default/Android.bp @@ -91,9 +91,10 @@ cc_test { // These are static libs only for testing purposes and portability. Shared // libs should be used on device. static_libs: [ + "android.hardware.common-unstable-ndk_platform", + "android.hardware.common.fmq-unstable-ndk_platform", "android.hardware.tests.msgq@1.0", "android.fmq.test-ndk_platform", - "android.hardware.common.fmq-unstable-ndk_platform", ], whole_static_libs: [ "android.hardware.tests.msgq@1.0-impl", 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)) { diff --git a/tests/msgq/1.0/default/TestMsgQ.h b/tests/msgq/1.0/default/TestMsgQ.h index 8a204b725d..49675fe306 100644 --- a/tests/msgq/1.0/default/TestMsgQ.h +++ b/tests/msgq/1.0/default/TestMsgQ.h @@ -56,7 +56,8 @@ struct TestMsgQ : public ITestMsgQ { // Methods from ::android::hardware::tests::msgq::V1_0::ITestMsgQ follow. Return<bool> configureFmqSyncReadWrite(const MQDescriptorSync<int32_t>& mqDesc) override; - Return<void> getFmqUnsyncWrite(bool configureFmq, getFmqUnsyncWrite_cb _hidl_cb) override; + Return<void> getFmqUnsyncWrite(bool configureFmq, bool userFd, + getFmqUnsyncWrite_cb _hidl_cb) override; Return<bool> requestWriteFmqSync(int32_t count) override; Return<bool> requestReadFmqSync(int32_t count) override; Return<bool> requestWriteFmqUnsync(int32_t count) override; |