Add metadata to modules in system/libfmq am: ef477dd676 am: 31edfaabe0 -s ours
am: 3dcaf37163 -s ours
Change-Id: Ice846a355767f9f42a58c4b47be56d3293d0bf98
diff --git a/Android.bp b/Android.bp
index de2b6ac..5b7459f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -12,6 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+subdirs = [
+ "tests",
+]
+
cc_library_shared {
name: "libfmq",
shared_libs: [
@@ -26,7 +30,6 @@
],
export_include_dirs: ["include"],
local_include_dirs: ["include"],
- clang: true,
srcs: [
"EventFlag.cpp",
"FmqInternal.cpp",
diff --git a/EventFlag.cpp b/EventFlag.cpp
index 7ce4edd..cb101bd 100644
--- a/EventFlag.cpp
+++ b/EventFlag.cpp
@@ -16,14 +16,17 @@
#define LOG_TAG "FMQ_EventFlags"
-#include <fmq/EventFlag.h>
#include <linux/futex.h>
+#include <string.h>
#include <sys/mman.h>
#include <sys/syscall.h>
#include <unistd.h>
+
+#include <new>
+
+#include <fmq/EventFlag.h>
#include <utils/Log.h>
#include <utils/SystemClock.h>
-#include <new>
namespace android {
namespace hardware {
diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk
index 1df6798..3f481cb 100644
--- a/benchmarks/Android.mk
+++ b/benchmarks/Android.mk
@@ -20,6 +20,8 @@
LOCAL_SRC_FILES := \
msgq_benchmark_client.cpp
+LOCAL_CFLAGS := -Wall -Werror
+
LOCAL_SHARED_LIBRARIES := \
libhwbinder \
libbase \
diff --git a/tests/Android.bp b/tests/Android.bp
new file mode 100644
index 0000000..ab2b2ce
--- /dev/null
+++ b/tests/Android.bp
@@ -0,0 +1,65 @@
+//
+// Copyright (C) 2016 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+cc_test {
+ name: "mq_test_client",
+ srcs: ["msgq_test_client.cpp"],
+
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+
+ shared_libs: [
+ "libbase",
+ "libcutils",
+ "libfmq",
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ ],
+
+ // Allow dlsym'ing self for statically linked passthrough implementations
+ ldflags: ["-rdynamic"],
+
+ // These are static libs only for testing purposes and portability. Shared
+ // libs should be used on device.
+ static_libs: ["android.hardware.tests.msgq@1.0"],
+ whole_static_libs: ["android.hardware.tests.msgq@1.0-impl"],
+}
+
+cc_test {
+ name: "mq_test",
+
+ srcs: ["mq_test.cpp"],
+ shared_libs: [
+ "libbase",
+ "libcutils",
+ "libfmq",
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "liblog",
+ "libutils",
+ ],
+
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+}
diff --git a/tests/Android.mk b/tests/Android.mk
index 673d485..718a33b 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -29,42 +29,6 @@
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := \
- msgq_test_client.cpp
-
-LOCAL_SHARED_LIBRARIES := \
- libhidlbase \
- libhidltransport \
- libhwbinder \
- libcutils \
- libutils \
- libbase \
- libfmq \
- liblog
-LOCAL_CFLAGS := -Wall -Werror
-LOCAL_SHARED_LIBRARIES += android.hardware.tests.msgq@1.0 libfmq
-LOCAL_MODULE := mq_test_client
-LOCAL_REQUIRED_MODULES := \
- android.hardware.tests.msgq@1.0-impl_32 \
- android.hardware.tests.msgq@1.0-impl
-
-include $(BUILD_NATIVE_TEST)
-
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES := \
- mq_test.cpp
-LOCAL_STATIC_LIBRARIES := libutils libcutils liblog
-LOCAL_SHARED_LIBRARIES := \
- libhidlbase \
- libhidltransport \
- libhwbinder \
- libbase \
- libfmq
-LOCAL_MODULE := mq_test
-LOCAL_CFLAGS := -Wall -Werror
-include $(BUILD_NATIVE_TEST)
-
-include $(CLEAR_VARS)
LOCAL_MODULE := VtsFmqUnitTests
VTS_CONFIG_SRC_DIR := system/libfmq/tests
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index adf8b02..9e5df01 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -23,20 +23,12 @@
<option name="push" value="DATA/nativetest/mq_test_client/mq_test_client->/data/nativetest/mq_test_client/mq_test_client" />
<option name="push" value="DATA/nativetest64/mq_test_client/mq_test_client->/data/nativetest64/mq_test_client/mq_test_client" />
<option name="push" value="DATA/nativetest64/hidl_test_helper->/data/nativetest64/hidl_test_helper" />
- <option name="push" value="DATA/nativetest64/fmq_test->/data/nativetest64/fmq_test" />
- <option name="push" value="DATA/lib/android.hardware.tests.msgq@1.0.so->/data/local/tmp/system/lib/android.hardware.tests.msgq@1.0.so" />
- <option name="push" value="DATA/lib64/android.hardware.tests.msgq@1.0.so->/data/local/tmp/system/lib64/android.hardware.tests.msgq@1.0.so" />
- <option name="push" value="DATA/lib/hw/android.hardware.tests.msgq@1.0-impl.so->/data/local/tmp/system/lib/hw/android.hardware.tests.msgq@1.0-impl.so" />
- <option name="push" value="DATA/lib64/hw/android.hardware.tests.msgq@1.0-impl.so->/data/local/tmp/system/lib64/hw/android.hardware.tests.msgq@1.0-impl.so" />
</target_preparer>
- <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+ <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
<test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
<option name="test-module-name" value="VtsFmqUnitTests" />
<option name="binary-test-type" value="binary_test" />
<option name="binary-test-source" value="DATA/nativetest64/fmq_test->/data/nativetest64/fmq_test" />
- <option name="binary-test-envp" value="TREBLE_TESTING_OVERRIDE=true" />
- <option name="binary-test-envp" value="VTS_ROOT_PATH=/data/local/tmp" />
- <option name="binary-test-args" value="-x /data/local/tmp/system/lib" />
- <option name="binary-test-args" value="-y /data/local/tmp/system/lib64" />
+ <option name="test-timeout" value="1m"/>
</test>
</configuration>
diff --git a/tests/msgq_test_client.cpp b/tests/msgq_test_client.cpp
index 4416c54..50664f7 100644
--- a/tests/msgq_test_client.cpp
+++ b/tests/msgq_test_client.cpp
@@ -244,6 +244,11 @@
static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
5000000000 /* timeOutNanos */);
ASSERT_TRUE(ret);
+ ret = mQueue->writeBlocking(data, mNumMessagesMax,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
+ ASSERT_TRUE(ret);
}
/*
@@ -286,6 +291,7 @@
TEST_F(SynchronizedReadWriteClient, BlockingReadWriteRepeat1) {
const size_t dataLen = 64;
uint16_t data[dataLen] = {0};
+ bool ret = false;
/*
* Request service to perform a blocking read. This call is oneway and will
@@ -295,14 +301,19 @@
mService->requestBlockingReadRepeat(dataLen, writeCount);
for (size_t i = 0; i < writeCount; i++) {
- bool ret = mQueue->writeBlocking(
- data,
- dataLen,
- static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
- static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
- 5000000000 /* timeOutNanos */);
+ ret = mQueue->writeBlocking(data, dataLen,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
ASSERT_TRUE(ret);
}
+
+ ret = mQueue->writeBlocking(data, mNumMessagesMax,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
+
+ ASSERT_TRUE(ret);
}
/*
@@ -314,6 +325,7 @@
TEST_F(SynchronizedReadWriteClient, BlockingReadWriteRepeat2) {
const size_t dataLen = 64;
uint16_t data[dataLen] = {0};
+ bool ret = false;
/*
* Request service to perform a blocking read. This call is oneway and will
@@ -323,14 +335,18 @@
mService->requestBlockingReadRepeat(dataLen*2, writeCount/2);
for (size_t i = 0; i < writeCount; i++) {
- bool ret = mQueue->writeBlocking(
- data,
- dataLen,
- static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
- static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
- 5000000000 /* timeOutNanos */);
+ ret = mQueue->writeBlocking(data, dataLen,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
ASSERT_TRUE(ret);
}
+
+ ret = mQueue->writeBlocking(data, mNumMessagesMax,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
+ ASSERT_TRUE(ret);
}
/*
@@ -341,6 +357,7 @@
TEST_F(SynchronizedReadWriteClient, BlockingReadWriteRepeat3) {
const size_t dataLen = 64;
uint16_t data[dataLen] = {0};
+ bool ret = false;
/*
* Request service to perform a blocking read. This call is oneway and will
@@ -350,14 +367,17 @@
mService->requestBlockingReadRepeat(dataLen/2, writeCount*2);
for (size_t i = 0; i < writeCount; i++) {
- bool ret = mQueue->writeBlocking(
- data,
- dataLen,
- static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
- static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
- 5000000000 /* timeOutNanos */);
+ ret = mQueue->writeBlocking(data, dataLen,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
ASSERT_TRUE(ret);
}
+ ret = mQueue->writeBlocking(data, mNumMessagesMax,
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL),
+ static_cast<uint32_t>(ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY),
+ 5000000000 /* timeOutNanos */);
+ ASSERT_TRUE(ret);
}
/*