Add <vndk> entry to framework manifest and device comp-mat.
Bug: 36400653
Test: libvintf_test
Change-Id: Ie727d4806ad74a72511354a901fca09ea9ae67c4
diff --git a/test/main.cpp b/test/main.cpp
index f73c2db..0a636c8 100644
--- a/test/main.cpp
+++ b/test/main.cpp
@@ -66,7 +66,7 @@
bool isValid(const ManifestHal &mh) {
return mh.isValid();
}
- HalManifest testHalManifest() {
+ HalManifest testDeviceManifest() {
HalManifest vm;
vm.mType = SchemaType::DEVICE;
vm.device.mSepolicyVersion = {25, 0};
@@ -92,6 +92,28 @@
return vm;
}
+ HalManifest testFrameworkManfiest() {
+ HalManifest vm;
+ vm.mType = SchemaType::FRAMEWORK;
+ vm.add(ManifestHal{
+ .format = HalFormat::HIDL,
+ .name = "android.hidl.manager",
+ .versions = {Version(1, 0)},
+ .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
+ .interfaces = {
+ {"IServiceManager", {"IServiceManager", {"default"}}},
+ }
+ });
+ Vndk vndk2505;
+ vndk2505.mVersionRange = {25, 0, 5};
+ vndk2505.mLibraries = { "libjpeg.so", "libbase.so" };
+ Vndk vndk2513;
+ vndk2513.mVersionRange = {25, 1, 3};
+ vndk2513.mLibraries = { "libjpeg.so", "libbase.so", "libtinyxml2.so" };
+ vm.framework.mVndks = { std::move(vndk2505), std::move(vndk2513) };
+
+ return vm;
+ }
RuntimeInfo testRuntimeInfo() {
RuntimeInfo info;
info.mOsName = "Linux";
@@ -114,7 +136,7 @@
TEST_F(LibVintfTest, Stringify) {
- HalManifest vm = testHalManifest();
+ HalManifest vm = testDeviceManifest();
EXPECT_EQ(dump(vm), "hidl/android.hardware.camera/hwbinder/2.0:"
"hidl/android.hardware.nfc/passthrough32+64/1.0");
@@ -129,7 +151,7 @@
}
TEST_F(LibVintfTest, HalManifestConverter) {
- HalManifest vm = testHalManifest();
+ HalManifest vm = testDeviceManifest();
std::string xml = gHalManifestConverter(vm);
EXPECT_EQ(xml,
"<manifest version=\"1.0\" type=\"device\">\n"
@@ -162,6 +184,36 @@
"</manifest>\n");
}
+TEST_F(LibVintfTest, HalManifestConverterFramework) {
+ HalManifest vm = testFrameworkManfiest();
+ std::string xml = gHalManifestConverter(vm);
+ EXPECT_EQ(xml,
+ "<manifest version=\"1.0\" type=\"framework\">\n"
+ " <hal format=\"hidl\">\n"
+ " <name>android.hidl.manager</name>\n"
+ " <transport>hwbinder</transport>\n"
+ " <version>1.0</version>\n"
+ " <interface>\n"
+ " <name>IServiceManager</name>\n"
+ " <instance>default</instance>\n"
+ " </interface>\n"
+ " </hal>\n"
+ " <vndk>\n"
+ " <version>25.0.5</version>\n"
+ " <library>libbase.so</library>\n"
+ " <library>libjpeg.so</library>\n"
+ " </vndk>\n"
+ " <vndk>\n"
+ " <version>25.1.3</version>\n"
+ " <library>libbase.so</library>\n"
+ " <library>libjpeg.so</library>\n"
+ " <library>libtinyxml2.so</library>\n"
+ " </vndk>\n"
+ "</manifest>\n");
+ HalManifest vm2;
+ EXPECT_TRUE(gHalManifestConverter(&vm2, xml));
+}
+
TEST_F(LibVintfTest, HalManifestOptional) {
HalManifest vm;
EXPECT_TRUE(gHalManifestConverter(&vm,
@@ -184,7 +236,7 @@
}
TEST_F(LibVintfTest, HalManifestInstances) {
- HalManifest vm = testHalManifest();
+ HalManifest vm = testDeviceManifest();
EXPECT_EQ(vm.getInstances("android.hardware.camera", "ICamera"),
std::set<std::string>({"default", "legacy/0"}));
EXPECT_EQ(vm.getInstances("android.hardware.camera", "IBetterCamera"),
@@ -387,13 +439,13 @@
}
TEST_F(LibVintfTest, HalManifestGetHalNames) {
- HalManifest vm = testHalManifest();
+ HalManifest vm = testDeviceManifest();
EXPECT_EQ(vm.getHalNames(), std::set<std::string>(
{"android.hardware.camera", "android.hardware.nfc"}));
}
TEST_F(LibVintfTest, HalManifestGetInterfaceNames) {
- HalManifest vm = testHalManifest();
+ HalManifest vm = testDeviceManifest();
EXPECT_EQ(vm.getInterfaceNames("android.hardware.camera"),
std::set<std::string>({"ICamera", "IBetterCamera"}));
EXPECT_EQ(vm.getInterfaceNames("android.hardware.nfc"),
@@ -401,7 +453,7 @@
}
TEST_F(LibVintfTest, HalManifestGetHal) {
- HalManifest vm = testHalManifest();
+ HalManifest vm = testDeviceManifest();
EXPECT_NE(getHal(vm, "android.hardware.camera"), nullptr);
EXPECT_EQ(getHal(vm, "non-existent"), nullptr);