BootControl: is slot marked successful

Test: update_engine_unittests
Bug: 147696014

Change-Id: I316efda7a0936e2dee0f766efb5c18ff30790274
diff --git a/boot_control_android.cc b/boot_control_android.cc
index 429de6a..ec2ca0f 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -150,6 +150,22 @@
          brillo::MessageLoop::kTaskIdNull;
 }
 
+bool BootControlAndroid::IsSlotMarkedSuccessful(
+    BootControlInterface::Slot slot) const {
+  Return<BoolResult> ret = module_->isSlotMarkedSuccessful(slot);
+  CommandResult result;
+  if (!ret.isOk()) {
+    LOG(ERROR) << "Unable to determine if slot " << SlotName(slot)
+               << " is marked successful: " << ret.description();
+    return false;
+  }
+  if (ret == BoolResult::INVALID_SLOT) {
+    LOG(ERROR) << "Invalid slot: " << SlotName(slot);
+    return false;
+  }
+  return ret == BoolResult::TRUE;
+}
+
 DynamicPartitionControlInterface*
 BootControlAndroid::GetDynamicPartitionControl() {
   return dynamic_control_.get();