Move preload test to libhidl_test.
am: 951fb13178
Change-Id: Ib5e691f99a730a26af9297815993ec9ecc2a31d8
diff --git a/Android.bp b/Android.bp
index e97c28c..f9b1e96 100644
--- a/Android.bp
+++ b/Android.bp
@@ -35,6 +35,7 @@
srcs: ["test_main.cpp"],
shared_libs: [
+ "android.hardware.tests.inheritance@1.0",
"libbase",
"libhidlbase",
"libhidltransport",
@@ -45,6 +46,10 @@
],
static_libs: ["libgtest", "libgmock"],
+ required: [
+ "android.hardware.tests.inheritance@1.0-impl",
+ ],
+
cflags: [
"-O0",
"-g",
diff --git a/test_main.cpp b/test_main.cpp
index 2811612..0de46ec 100644
--- a/test_main.cpp
+++ b/test_main.cpp
@@ -17,12 +17,15 @@
#define LOG_TAG "LibHidlTest"
#include <android-base/logging.h>
-#include <condition_variable>
+#include <android/hardware/tests/inheritance/1.0/IParent.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <hidl/HidlSupport.h>
+#include <hidl/ServiceManagement.h>
#include <hidl/Status.h>
#include <hidl/TaskRunner.h>
+#include <condition_variable>
+#include <fstream>
#include <vector>
#define EXPECT_ARRAYEQ(__a1__, __a2__, __size__) EXPECT_TRUE(isArrayEqual(__a1__, __a2__, __size__))
@@ -46,6 +49,17 @@
return true;
}
+bool isLibraryOpen(const std::string& lib) {
+ std::ifstream ifs("/proc/self/maps");
+ for (std::string line; std::getline(ifs, line);) {
+ if (line.size() >= lib.size() && line.substr(line.size() - lib.size()) == lib) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
class LibHidlTest : public ::testing::Test {
public:
virtual void SetUp() override {
@@ -441,7 +455,17 @@
EXPECT_THAT(toString(Status::fromExceptionCode(Status::EX_NULL_POINTER)),
HasSubstr("EX_NULL_POINTER"));
+}
+TEST_F(LibHidlTest, PreloadTest) {
+ using ::android::hardware::preloadPassthroughService;
+ using ::android::hardware::tests::inheritance::V1_0::IParent;
+
+ static const std::string kLib = "android.hardware.tests.inheritance@1.0-impl.so";
+
+ EXPECT_FALSE(isLibraryOpen(kLib));
+ preloadPassthroughService<IParent>();
+ EXPECT_TRUE(isLibraryOpen(kLib));
}
int main(int argc, char **argv) {