Fixes to utility / unit test related code.

* Eliminated bugs related to reading content from pipes/files, including
  general cleanup/refactoring of these code pieces and API.

* Eliminated bugs related binding/unbinding of loopback devices, which
  are used in unit testing.

BUG=chromium-os:31082
TEST=Builds and runs unit tests

CQ-DEPEND=Ib7b3552e98ca40b6141688e2dea5a1407db12b2a

Change-Id: Ifaab8697602a35ce7d7fb9384fdcb1ca64b72515
Reviewed-on: https://gerrit.chromium.org/gerrit/27911
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Commit-Ready: Gilad Arnold <garnold@chromium.org>
diff --git a/integration_unittest.cc b/integration_unittest.cc
index 4c43b35..f42b89e 100644
--- a/integration_unittest.cc
+++ b/integration_unittest.cc
@@ -56,7 +56,8 @@
     if (action->Type() == InstallAction::StaticType()) {
       InstallAction* install_action = static_cast<InstallAction*>(action);
       old_dev_ = install_action->GetOutputObject();
-      string dev = BindToUnusedDevice(kTestDir + "/dev2");
+      string dev;
+      BindToUnusedDevice(kTestDir + "/dev2", &dev);
       install_action->SetOutputObject(dev);
     } else if (action->Type() == PostinstallRunnerAction::StaticType()) {
       PostinstallRunnerAction* postinstall_runner_action =
@@ -178,7 +179,7 @@
   ASSERT_EQ(0, lstat("/tmp/update_engine_test_postinst_out.txt", &stbuf));
   EXPECT_TRUE(S_ISREG(stbuf.st_mode));
   string file_data;
-  EXPECT_TRUE(utils::ReadFileToString(
+  EXPECT_TRUE(utils::ReadFile(
       "/tmp/update_engine_test_postinst_out.txt",
       &file_data));
   EXPECT_EQ("POSTINST_DONE\n", file_data);