Don't inherit from std::string.

std::string should not be inherited from.

This code does not compile with the libc++ update because copy
constructors cannot be inherited (not sure why Clang allows this
prior to the update).

Test: mm
Bug: None
Change-Id: I9b83a918386016de892bba1a3ff144ab44741b7c
diff --git a/boot_control_android_unittest.cc b/boot_control_android_unittest.cc
index 79f8662..0eb3fe0 100644
--- a/boot_control_android_unittest.cc
+++ b/boot_control_android_unittest.cc
@@ -32,6 +32,7 @@
 using android::dm::DmDeviceState;
 using android::fs_mgr::MetadataBuilder;
 using android::hardware::Void;
+using std::string;
 using testing::_;
 using testing::AnyNumber;
 using testing::Contains;
@@ -55,19 +56,12 @@
 constexpr const uint32_t kFakeMetadataSize = 65536;
 constexpr const char* kDefaultGroup = "foo";
 
-// "vendor"
-struct PartitionName : std::string {
-  using std::string::string;
-};
-
-// "vendor_a"
-struct PartitionNameSuffix : std::string {
-  using std::string::string;
-};
-
 // A map describing the size of each partition.
-using PartitionSizes = std::map<PartitionName, uint64_t>;
-using PartitionSuffixSizes = std::map<PartitionNameSuffix, uint64_t>;
+// "{name, size}"
+using PartitionSizes = std::map<string, uint64_t>;
+
+// "{name_a, size}"
+using PartitionSuffixSizes = std::map<string, uint64_t>;
 
 using PartitionMetadata = BootControlInterface::PartitionMetadata;
 
@@ -123,16 +117,16 @@
   return os << m.groups;
 }
 
-inline std::string GetDevice(const std::string& name) {
+inline string GetDevice(const string& name) {
   return kFakeDevicePath + name;
 }
 
-inline std::string GetDmDevice(const std::string& name) {
+inline string GetDmDevice(const string& name) {
   return kFakeDmDevicePath + name;
 }
 
 // TODO(elsk): fs_mgr_get_super_partition_name should be mocked.
-inline std::string GetSuperDevice(uint32_t slot) {
+inline string GetSuperDevice(uint32_t slot) {
   return GetDevice(fs_mgr_get_super_partition_name(slot));
 }
 
@@ -147,11 +141,12 @@
 
 // To support legacy tests, auto-convert {name_a: size} map to
 // PartitionMetadata.
-PartitionMetadata toMetadata(const PartitionSuffixSizes& partition_sizes) {
+PartitionMetadata partitionSuffixSizesToMetadata(
+    const PartitionSuffixSizes& partition_sizes) {
   PartitionMetadata metadata;
   for (const char* suffix : kSlotSuffixes) {
     metadata.groups.push_back(
-        {std::string(kDefaultGroup) + suffix, kDefaultGroupSize, {}});
+        {string(kDefaultGroup) + suffix, kDefaultGroupSize, {}});
   }
   for (const auto& pair : partition_sizes) {
     for (size_t suffix_idx = 0; suffix_idx < kMaxNumSlots; ++suffix_idx) {
@@ -167,10 +162,10 @@
 }
 
 // To support legacy tests, auto-convert {name: size} map to PartitionMetadata.
-PartitionMetadata toMetadata(const PartitionSizes& partition_sizes) {
+PartitionMetadata partitionSizesToMetadata(
+    const PartitionSizes& partition_sizes) {
   PartitionMetadata metadata;
-  metadata.groups.push_back(
-      {std::string{kDefaultGroup}, kDefaultGroupSize, {}});
+  metadata.groups.push_back({string{kDefaultGroup}, kDefaultGroupSize, {}});
   for (const auto& pair : partition_sizes) {
     metadata.groups[0].partitions.push_back({pair.first, pair.second});
   }
@@ -198,7 +193,7 @@
 class MetadataMatcher : public MatcherInterface<MetadataBuilder*> {
  public:
   explicit MetadataMatcher(const PartitionSuffixSizes& partition_sizes)
-      : partition_metadata_(toMetadata(partition_sizes)) {}
+      : partition_metadata_(partitionSuffixSizesToMetadata(partition_sizes)) {}
   explicit MetadataMatcher(const PartitionMetadata& partition_metadata)
       : partition_metadata_(partition_metadata) {}
 
@@ -310,7 +305,7 @@
   // Set the fake metadata to return when LoadMetadataBuilder is called on
   // |slot|.
   void SetMetadata(uint32_t slot, const PartitionSuffixSizes& sizes) {
-    SetMetadata(slot, toMetadata(sizes));
+    SetMetadata(slot, partitionSuffixSizesToMetadata(sizes));
   }
 
   void SetMetadata(uint32_t slot, const PartitionMetadata& metadata) {
@@ -324,7 +319,7 @@
 
   // Expect that UnmapPartitionOnDeviceMapper is called on target() metadata
   // slot with each partition in |partitions|.
-  void ExpectUnmap(const std::set<std::string>& partitions) {
+  void ExpectUnmap(const std::set<string>& partitions) {
     // Error when UnmapPartitionOnDeviceMapper is called on unknown arguments.
     ON_CALL(dynamicControl(), UnmapPartitionOnDeviceMapper(_, _))
         .WillByDefault(Return(false));
@@ -338,7 +333,7 @@
     }
   }
 
-  void ExpectDevicesAreMapped(const std::set<std::string>& partitions) {
+  void ExpectDevicesAreMapped(const std::set<string>& partitions) {
     ASSERT_EQ(partitions.size(), mapped_devices_.size());
     for (const auto& partition : partitions) {
       EXPECT_THAT(mapped_devices_, Contains(Key(Eq(partition))))
@@ -362,14 +357,10 @@
   uint32_t target() { return slots_.target; }
 
   // Return partition names with suffix of source().
-  PartitionNameSuffix S(const std::string& name) {
-    return PartitionNameSuffix(name + std::string(kSlotSuffixes[source()]));
-  }
+  string S(const string& name) { return name + kSlotSuffixes[source()]; }
 
   // Return partition names with suffix of target().
-  PartitionNameSuffix T(const std::string& name) {
-    return PartitionNameSuffix(name + std::string(kSlotSuffixes[target()]));
-  }
+  string T(const string& name) { return name + kSlotSuffixes[target()]; }
 
   // Set source and target slots to use before testing.
   void SetSlots(const TestParam& slots) {
@@ -389,7 +380,7 @@
   }
 
   bool InitPartitionMetadata(uint32_t slot, PartitionSizes partition_sizes) {
-    auto m = toMetadata(partition_sizes);
+    auto m = partitionSizesToMetadata(partition_sizes);
     LOG(INFO) << m;
     return bootctl_.InitPartitionMetadata(slot, m);
   }
@@ -397,7 +388,7 @@
   BootControlAndroid bootctl_;  // BootControlAndroid under test.
   TestParam slots_;
   // mapped devices through MapPartitionOnDeviceMapper.
-  std::map<std::string, std::string> mapped_devices_;
+  std::map<string, string> mapped_devices_;
 };
 
 class BootControlAndroidTestP
@@ -552,13 +543,13 @@
   EXPECT_CALL(dynamicControl(), GetState(S("system")))
       .Times(1)
       .WillOnce(Return(DmDeviceState::ACTIVE));
-  std::string source_device;
+  string source_device;
   EXPECT_TRUE(bootctl_.GetPartitionDevice("system", source(), &source_device));
   EXPECT_EQ(GetDmDevice(S("system")), source_device);
 
   // Should use static target partitions without querying dynamic control.
   EXPECT_CALL(dynamicControl(), GetState(T("system"))).Times(0);
-  std::string target_device;
+  string target_device;
   EXPECT_TRUE(bootctl_.GetPartitionDevice("system", target(), &target_device));
   EXPECT_EQ(GetDevice(T("system")), target_device);
 }
@@ -669,9 +660,9 @@
   }
 
   // Return a simple group with only one partition.
-  PartitionMetadata::Group SimpleGroup(const std::string& group,
+  PartitionMetadata::Group SimpleGroup(const string& group,
                                        uint64_t group_size,
-                                       const std::string& partition,
+                                       const string& partition,
                                        uint64_t partition_size) {
     return {.name = group,
             .size = group_size,