update_engine: Fake chromeos-setgoodkernel command for testing.

This patch fakes the chromeos-setgoodkernel command when running
unittests so the command doesn't attempt to run it. It also makes
Subprocess log the error message when there's a failure running
an async process.

BUG=chromium:401866
TEST=cros_workon_make update_engine --test

Change-Id: Ieca3216c57f6f9bc2f71a53e520575ae1fc19c0e
Reviewed-on: https://chromium-review.googlesource.com/212260
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/update_attempter.h b/update_attempter.h
index f29b4e8..ce827e3 100644
--- a/update_attempter.h
+++ b/update_attempter.h
@@ -457,6 +457,9 @@
   // True if UpdateBootFlags is running.
   bool update_boot_flags_running_ = false;
 
+  // The command to run to set the current kernel as good.
+  std::string set_good_kernel_cmd_ = "/usr/sbin/chromeos-setgoodkernel";
+
   // True if the action processor needs to be started by the boot flag updater.
   bool start_action_processor_ = false;