OSDN Git Service

Test interface for hidlized IMemory.
authorMartijn Coenen <maco@google.com>
Thu, 1 Dec 2016 14:47:29 +0000 (15:47 +0100)
committerSteven Moreland <smoreland@google.com>
Fri, 2 Dec 2016 16:53:17 +0000 (08:53 -0800)
Test: hidl_test
Change-Id: I9d6260092bf58406905e543065319bc1f4db119f

tests/Android.bp
tests/memory/1.0/Android.bp [new file with mode: 0644]
tests/memory/1.0/IMemoryTest.hal [new file with mode: 0644]
tests/memory/1.0/default/Android.bp [new file with mode: 0644]
tests/memory/1.0/default/MemoryTest.cpp [new file with mode: 0644]
tests/memory/1.0/default/MemoryTest.h [new file with mode: 0644]

index 030576d..8b3e8b1 100644 (file)
@@ -11,6 +11,8 @@ subdirs = [
     "inheritance/1.0/default",
     "libhwbinder/1.0",
     "libhwbinder/1.0/default",
+    "memory/1.0",
+    "memory/1.0/default",
     "msgq/1.0",
     "pointer/1.0",
     "pointer/1.0/default",
diff --git a/tests/memory/1.0/Android.bp b/tests/memory/1.0/Android.bp
new file mode 100644 (file)
index 0000000..9a400a3
--- /dev/null
@@ -0,0 +1,50 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+genrule {
+    name: "android.hardware.tests.memory@1.0_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces android.hardware.tests.memory@1.0",
+    srcs: [
+        "IMemoryTest.hal",
+    ],
+    out: [
+        "android/hardware/tests/memory/1.0/MemoryTestAll.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.memory@1.0_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces android.hardware.tests.memory@1.0",
+    srcs: [
+        "IMemoryTest.hal",
+    ],
+    out: [
+        "android/hardware/tests/memory/1.0/IMemoryTest.h",
+        "android/hardware/tests/memory/1.0/IHwMemoryTest.h",
+        "android/hardware/tests/memory/1.0/BnMemoryTest.h",
+        "android/hardware/tests/memory/1.0/BpMemoryTest.h",
+        "android/hardware/tests/memory/1.0/BsMemoryTest.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.memory@1.0",
+    generated_sources: ["android.hardware.tests.memory@1.0_genc++"],
+    generated_headers: ["android.hardware.tests.memory@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.memory@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+    ],
+}
diff --git a/tests/memory/1.0/IMemoryTest.hal b/tests/memory/1.0/IMemoryTest.hal
new file mode 100644 (file)
index 0000000..c20c536
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+package android.hardware.tests.memory@1.0;
+
+interface IMemoryTest {
+    fillMemory(memory memory_in, uint8_t filler);
+};
diff --git a/tests/memory/1.0/default/Android.bp b/tests/memory/1.0/default/Android.bp
new file mode 100644 (file)
index 0000000..bde7c03
--- /dev/null
@@ -0,0 +1,31 @@
+// 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_library_shared {
+    name: "android.hardware.tests.memory@1.0-impl",
+    relative_install_path: "hw",
+    srcs: [
+        "MemoryTest.cpp",
+    ],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libhidlmemory",
+        "liblog",
+        "libutils",
+        "android.hardware.tests.memory@1.0",
+        "android.hidl.memory@1.0",
+    ],
+}
\ No newline at end of file
diff --git a/tests/memory/1.0/default/MemoryTest.cpp b/tests/memory/1.0/default/MemoryTest.cpp
new file mode 100644 (file)
index 0000000..ed65410
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+#define LOG_TAG "android.hardware.tests.memory@1.0"
+
+#include "MemoryTest.h"
+
+#include <hidlmemory/mapping.h>
+
+#include <android/hidl/memory/1.0/IMemory.h>
+
+using android::hidl::memory::V1_0::IMemory;
+
+namespace android {
+namespace hardware {
+namespace tests {
+namespace memory {
+namespace V1_0 {
+namespace implementation {
+
+// Methods from ::android::hardware::tests::memory::V1_0::IMemoryTest follow.
+Return<void> Memory::fillMemory(const hidl_memory& memory_in, uint8_t filler) {
+    sp<IMemory> memory = mapMemory(memory_in);
+
+    if (memory == nullptr) {
+        ALOGE("Could not map hidl_memory");
+        return Void();
+    }
+
+    uint8_t* data = static_cast<uint8_t*>(static_cast<void*>(memory->getPointer()));
+
+    memory->update();
+
+    for (size_t i = 0; i < memory->getSize(); i++) {
+        data[i] = filler;
+    }
+
+    memory->commit();
+
+    return Void();
+}
+
+
+IMemoryTest* HIDL_FETCH_IMemoryTest(const char* /* name */) {
+    return new Memory();
+}
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace memory
+}  // namespace tests
+}  // namespace hardware
+}  // namespace android
diff --git a/tests/memory/1.0/default/MemoryTest.h b/tests/memory/1.0/default/MemoryTest.h
new file mode 100644 (file)
index 0000000..5cab494
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+#ifndef ANDROID_HARDWARE_TESTS_MEMORY_V1_0_MEMORY_TEST_H
+#define ANDROID_HARDWARE_TESTS_MEMORY_V1_0_MEMORY_TEST_H
+
+#include <android/hardware/tests/memory/1.0/IMemoryTest.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+namespace android {
+namespace hardware {
+namespace tests {
+namespace memory {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::tests::memory::V1_0::IMemoryTest;
+using ::android::hardware::hidl_array;
+using ::android::hardware::hidl_memory;
+using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::sp;
+
+struct Memory : public IMemoryTest {
+    // Methods from ::android::hardware::tests::memory::V1_0::IMemoryTest follow.
+    Return<void> fillMemory(const hidl_memory& memory_in, uint8_t filler) override;
+
+};
+
+extern "C" IMemoryTest* HIDL_FETCH_IMemoryTest(const char* name);
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace memory
+}  // namespace tests
+}  // namespace hardware
+}  // namespace android
+
+#endif  // ANDROID_HARDWARE_TESTS_MEMORY_V1_0_MEMORY_TEST_H