ManifestHal: constructor fix

This allows ManifestHal to have private fields.
Test: builds
Test: libvintf_test
Test: vintf_object_test
Bug: 73556059

Change-Id: Idbe7966c92a1832095b8cd7a6bddeb15fc4a73ee
Merged-In: Idbe7966c92a1832095b8cd7a6bddeb15fc4a73ee
diff --git a/include/vintf/ManifestHal.h b/include/vintf/ManifestHal.h
index a35c49a..4cedaba 100644
--- a/include/vintf/ManifestHal.h
+++ b/include/vintf/ManifestHal.h
@@ -36,6 +36,16 @@
 struct ManifestHal {
     using InstanceType = ManifestInstance;
 
+    ManifestHal() = default;
+
+    ManifestHal(HalFormat fmt, std::string&& n, std::vector<Version>&& vs, TransportArch ta,
+                std::map<std::string, HalInterface>&& intf)
+        : format(fmt),
+          name(std::move(n)),
+          versions(std::move(vs)),
+          transportArch(ta),
+          interfaces(std::move(intf)) {}
+
     bool operator==(const ManifestHal &other) const;
     // Check whether the ManifestHal contains the given version.
     // E.g. if hal has version "1.0" and "2.1", it contains version
diff --git a/test/LibVintfTest.cpp b/test/LibVintfTest.cpp
index ce3a656..a9f8df6 100644
--- a/test/LibVintfTest.cpp
+++ b/test/LibVintfTest.cpp
@@ -125,25 +125,17 @@
         HalManifest vm;
         vm.mType = SchemaType::DEVICE;
         vm.device.mSepolicyVersion = {25, 0};
-        vm.add(ManifestHal{
-            .format = HalFormat::HIDL,
-            .name = "android.hardware.camera",
-            .versions = {Version(2, 0)},
-            .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
-            .interfaces = {
-                {"ICamera", {"ICamera", {"legacy/0", "default"}}},
-                {"IBetterCamera", {"IBetterCamera", {"camera"}}}
-            }
-        });
-        vm.add(ManifestHal{
-            .format = HalFormat::HIDL,
-            .name = "android.hardware.nfc",
-            .versions = {Version(1, 0)},
-            .transportArch = {Transport::PASSTHROUGH, Arch::ARCH_32_64},
-            .interfaces = {
-                {"INfc", {"INfc", {"default"}}}
-            }
-        });
+        vm.add(ManifestHal{HalFormat::HIDL,
+                           "android.hardware.camera",
+                           {Version(2, 0)},
+                           {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                           {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
+                            {"IBetterCamera", {"IBetterCamera", {"camera"}}}}});
+        vm.add(ManifestHal{HalFormat::HIDL,
+                           "android.hardware.nfc",
+                           {Version(1, 0)},
+                           {Transport::PASSTHROUGH, Arch::ARCH_32_64},
+                           {{"INfc", {"INfc", {"default"}}}}});
 
         return vm;
     }
@@ -158,15 +150,13 @@
     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"}}},
-            }
-        });
+        vm.add(ManifestHal{HalFormat::HIDL,
+                           "android.hidl.manager",
+                           {Version(1, 0)},
+                           {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                           {
+                               {"IServiceManager", {"IServiceManager", {"default"}}},
+                           }});
         Vndk vndk2505;
         vndk2505.mVersionRange = {25, 0, 5};
         vndk2505.mLibraries = { "libjpeg.so", "libbase.so" };
@@ -234,11 +224,11 @@
 
 TEST_F(LibVintfTest, FutureManifestCompatible) {
     HalManifest expectedManifest;
-    expectedManifest.add(ManifestHal{.format = HalFormat::HIDL,
-                                     .name = "android.hardware.foo",
-                                     .versions = {Version(1, 0)},
-                                     .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
-                                     .interfaces = {
+    expectedManifest.add(ManifestHal{HalFormat::HIDL,
+                                     "android.hardware.foo",
+                                     {Version(1, 0)},
+                                     {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                                     {
                                          {"IFoo", {"IFoo", {"default"}}},
                                      }});
     std::string manifestXml =
@@ -680,12 +670,11 @@
 TEST_F(LibVintfTest, IsValid) {
     EXPECT_TRUE(isValid(ManifestHal()));
 
-    ManifestHal invalidHal{
-        .format = HalFormat::HIDL,
-        .name = "android.hardware.camera",
-        .versions = {{Version(2, 0), Version(2, 1)}},
-        .transportArch = {Transport::PASSTHROUGH, Arch::ARCH_32_64}
-    };
+    ManifestHal invalidHal{HalFormat::HIDL,
+                           "android.hardware.camera",
+                           {{Version(2, 0), Version(2, 1)}},
+                           {Transport::PASSTHROUGH, Arch::ARCH_32_64},
+                           {}};
 
     EXPECT_FALSE(isValid(invalidHal));
     HalManifest vm2;
@@ -712,45 +701,42 @@
 
 TEST_F(LibVintfTest, HalManifestGetHals) {
     HalManifest vm;
-    EXPECT_TRUE(
-        add(vm, ManifestHal{.format = HalFormat::HIDL,
-                            .name = "android.hardware.camera",
-                            .versions = {Version(1, 2)},
-                            .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
-                            .interfaces = {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
-                                           {"IBetterCamera", {"IBetterCamera", {"camera"}}}}}));
-    EXPECT_TRUE(
-        add(vm, ManifestHal{.format = HalFormat::HIDL,
-                            .name = "android.hardware.camera",
-                            .versions = {Version(2, 0)},
-                            .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
-                            .interfaces = {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
-                                           {"IBetterCamera", {"IBetterCamera", {"camera"}}}}}));
-    EXPECT_TRUE(add(vm, ManifestHal{.format = HalFormat::HIDL,
-                                    .name = "android.hardware.nfc",
-                                    .versions = {Version(1, 0), Version(2, 1)},
-                                    .transportArch = {Transport::PASSTHROUGH, Arch::ARCH_32_64},
-                                    .interfaces = {{"INfc", {"INfc", {"default"}}}}}));
+    EXPECT_TRUE(add(vm, ManifestHal{HalFormat::HIDL,
+                                    "android.hardware.camera",
+                                    {Version(1, 2)},
+                                    {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                                    {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
+                                     {"IBetterCamera", {"IBetterCamera", {"camera"}}}}}));
+    EXPECT_TRUE(add(vm, ManifestHal{HalFormat::HIDL,
+                                    "android.hardware.camera",
+                                    {Version(2, 0)},
+                                    {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                                    {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
+                                     {"IBetterCamera", {"IBetterCamera", {"camera"}}}}}));
+    EXPECT_TRUE(add(vm, ManifestHal{HalFormat::HIDL,
+                                    "android.hardware.nfc",
+                                    {Version(1, 0), Version(2, 1)},
+                                    {Transport::PASSTHROUGH, Arch::ARCH_32_64},
+                                    {{"INfc", {"INfc", {"default"}}}}}));
     ManifestHal expectedCameraHalV1_2 =
-        ManifestHal{.format = HalFormat::HIDL,
-                    .name = "android.hardware.camera",
-                    .versions = {Version(1, 2)},
-                    .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
-                    .interfaces = {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
-                                   {"IBetterCamera", {"IBetterCamera", {"camera"}}}}};
+        ManifestHal{HalFormat::HIDL,
+                    "android.hardware.camera",
+                    {Version(1, 2)},
+                    {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                    {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
+                     {"IBetterCamera", {"IBetterCamera", {"camera"}}}}};
     ManifestHal expectedCameraHalV2_0 =
-        ManifestHal{.format = HalFormat::HIDL,
-                    .name = "android.hardware.camera",
-                    .versions = {Version(2, 0)},
-                    .transportArch = {Transport::HWBINDER, Arch::ARCH_EMPTY},
-                    .interfaces = {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
-                                   {"IBetterCamera", {"IBetterCamera", {"camera"}}}}};
-    ManifestHal expectedNfcHal =
-        ManifestHal{.format = HalFormat::HIDL,
-                    .name = "android.hardware.nfc",
-                    .versions = {Version(1, 0), Version(2, 1)},
-                    .transportArch = {Transport::PASSTHROUGH, Arch::ARCH_32_64},
-                    .interfaces = {{"INfc", {"INfc", {"default"}}}}};
+        ManifestHal{HalFormat::HIDL,
+                    "android.hardware.camera",
+                    {Version(2, 0)},
+                    {Transport::HWBINDER, Arch::ARCH_EMPTY},
+                    {{"ICamera", {"ICamera", {"legacy/0", "default"}}},
+                     {"IBetterCamera", {"IBetterCamera", {"camera"}}}}};
+    ManifestHal expectedNfcHal = ManifestHal{HalFormat::HIDL,
+                                             "android.hardware.nfc",
+                                             {Version(1, 0), Version(2, 1)},
+                                             {Transport::PASSTHROUGH, Arch::ARCH_32_64},
+                                             {{"INfc", {"INfc", {"default"}}}}};
     auto cameraHals = vm.getHals("android.hardware.camera");
     EXPECT_EQ((int)cameraHals.size(), 2);
     EXPECT_EQ(*cameraHals[0], expectedCameraHalV1_2);