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/subprocess.cc b/subprocess.cc
index fb34267..aab71b5 100644
--- a/subprocess.cc
+++ b/subprocess.cc
@@ -148,6 +148,7 @@
record->callback = callback;
record->callback_data = p;
gint stdout_fd = -1;
+ GError* error = nullptr;
bool success = g_spawn_async_with_pipes(
NULL, // working directory
argv.get(),
@@ -159,10 +160,10 @@
NULL,
&stdout_fd,
NULL,
- NULL);
+ &error);
FreeArgv(argv.get());
if (!success) {
- LOG(ERROR) << "g_spawn_async failed";
+ LOG(ERROR) << "g_spawn_async failed: " << utils::GetAndFreeGError(&error);
return 0;
}
record->tag =