Basic implementation for bufferhub HIDL service
Bug: 118124442
Test: device can boot with android.frameworks.bufferhub@1.0-service
running
Test: BufferHubBuffer_test
Change-Id: I6d1013d9be8268e3776f8fdbdd2eb79e3d73a74e
diff --git a/libs/ui/tests/Android.bp b/libs/ui/tests/Android.bp
index 228d202..e8bda67 100644
--- a/libs/ui/tests/Android.bp
+++ b/libs/ui/tests/Android.bp
@@ -37,8 +37,18 @@
cc_test {
name: "BufferHubBuffer_test",
- header_libs: ["libbufferhub_headers", "libdvr_headers"],
- shared_libs: ["libpdx_default_transport", "libui", "libutils"],
+ header_libs: [
+ "libbufferhub_headers",
+ "libdvr_headers"
+ ],
+ shared_libs: [
+ "android.frameworks.bufferhub@1.0",
+ "libhidlbase",
+ "libhwbinder",
+ "libpdx_default_transport",
+ "libui",
+ "libutils"
+ ],
srcs: ["BufferHubBuffer_test.cpp"],
cflags: ["-Wall", "-Werror"],
}
diff --git a/libs/ui/tests/BufferHubBuffer_test.cpp b/libs/ui/tests/BufferHubBuffer_test.cpp
index f0253b2..d88da9c 100644
--- a/libs/ui/tests/BufferHubBuffer_test.cpp
+++ b/libs/ui/tests/BufferHubBuffer_test.cpp
@@ -16,7 +16,10 @@
#define LOG_TAG "BufferHubBufferTest"
+#include <android/frameworks/bufferhub/1.0/IBufferHub.h>
#include <gtest/gtest.h>
+#include <hidl/ServiceManagement.h>
+#include <hwbinder/IPCThreadState.h>
#include <ui/BufferHubBuffer.h>
namespace android {
@@ -32,13 +35,18 @@
} // namespace
-using BufferHubBufferTest = ::testing::Test;
-
using dvr::BufferHubDefs::IsBufferGained;
using dvr::BufferHubDefs::kMetadataHeaderSize;
using dvr::BufferHubDefs::kProducerStateBit;
+using frameworks::bufferhub::V1_0::IBufferHub;
+using hardware::hidl_handle;
+using hidl::base::V1_0::IBase;
using pdx::LocalChannelHandle;
+class BufferHubBufferTest : public ::testing::Test {
+ void SetUp() override { android::hardware::ProcessState::self()->startThreadPool(); }
+};
+
TEST_F(BufferHubBufferTest, CreateBufferHubBufferFails) {
// Buffer Creation will fail: BLOB format requires height to be 1.
auto b1 = BufferHubBuffer::Create(kWidth, /*height=*/2, kLayerCount,
@@ -115,4 +123,14 @@
return;
}
+TEST_F(BufferHubBufferTest, ConnectHidlServer) {
+ sp<IBufferHub> bufferhub = IBufferHub::getService();
+ ASSERT_NE(nullptr, bufferhub.get());
+
+ // TODO(b/116681016): Fill in real test once the interface gets implemented..
+ hidl_handle handle;
+ sp<IBase> interface = bufferhub->importBuffer(handle);
+ EXPECT_EQ(nullptr, interface.get());
+}
+
} // namespace android