Merge "applypatch: {Load,Save}FileContents return bool values." am: bae5f1a846
am: baa841ed04

Change-Id: Id2f21c231c57001b10d48472eea33d7d15ed8631
diff --git a/applypatch/applypatch.cpp b/applypatch/applypatch.cpp
index abc67ab..f9383dd 100644
--- a/applypatch/applypatch.cpp
+++ b/applypatch/applypatch.cpp
@@ -49,21 +49,21 @@
 static bool GenerateTarget(const Partition& target, const FileContents& source_file,
                            const Value& patch, const Value* bonus_data);
 
-int LoadFileContents(const std::string& filename, FileContents* file) {
+bool LoadFileContents(const std::string& filename, FileContents* file) {
   // No longer allow loading contents from eMMC partitions.
   if (android::base::StartsWith(filename, "EMMC:")) {
-    return -1;
+    return false;
   }
 
   std::string data;
   if (!android::base::ReadFileToString(filename, &data)) {
     PLOG(ERROR) << "Failed to read \"" << filename << "\"";
-    return -1;
+    return false;
   }
 
   file->data = std::vector<unsigned char>(data.begin(), data.end());
   SHA1(file->data.data(), file->data.size(), file->sha1);
-  return 0;
+  return true;
 }
 
 // Reads the contents of a Partition to the given FileContents buffer.
@@ -97,7 +97,7 @@
     return false;
   }
 
-  if (LoadFileContents(Paths::Get().cache_temp_source(), out) == 0 &&
+  if (LoadFileContents(Paths::Get().cache_temp_source(), out) &&
       memcmp(out->sha1, expected_sha1, SHA_DIGEST_LENGTH) == 0) {
     return true;
   }
@@ -106,30 +106,30 @@
   return false;
 }
 
-int SaveFileContents(const std::string& filename, const FileContents* file) {
+bool SaveFileContents(const std::string& filename, const FileContents* file) {
   android::base::unique_fd fd(
       open(filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC | O_SYNC, S_IRUSR | S_IWUSR));
   if (fd == -1) {
     PLOG(ERROR) << "Failed to open \"" << filename << "\" for write";
-    return -1;
+    return false;
   }
 
   if (!android::base::WriteFully(fd, file->data.data(), file->data.size())) {
     PLOG(ERROR) << "Failed to write " << file->data.size() << " bytes of data to " << filename;
-    return -1;
+    return false;
   }
 
   if (fsync(fd) != 0) {
     PLOG(ERROR) << "Failed to fsync \"" << filename << "\"";
-    return -1;
+    return false;
   }
 
   if (close(fd.release()) != 0) {
     PLOG(ERROR) << "Failed to close \"" << filename << "\"";
-    return -1;
+    return false;
   }
 
-  return 0;
+  return true;
 }
 
 // Writes a memory buffer to 'target' Partition.
@@ -300,7 +300,7 @@
   }
 
   FileContents source_file;
-  if (LoadFileContents(source_filename, &source_file) != 0) {
+  if (!LoadFileContents(source_filename, &source_file)) {
     LOG(ERROR) << "Failed to load source file";
     return false;
   }
@@ -355,7 +355,7 @@
     LOG(ERROR) << "Not enough free space on /cache";
     return false;
   }
-  if (SaveFileContents(Paths::Get().cache_temp_source(), &source_file) < 0) {
+  if (!SaveFileContents(Paths::Get().cache_temp_source(), &source_file)) {
     LOG(ERROR) << "Failed to back up source file";
     return false;
   }
diff --git a/applypatch/include/applypatch/applypatch.h b/applypatch/include/applypatch/applypatch.h
index 70eee1c..6fc6f0f 100644
--- a/applypatch/include/applypatch/applypatch.h
+++ b/applypatch/include/applypatch/applypatch.h
@@ -92,12 +92,11 @@
 // function is idempotent. Returns the flashing result.
 bool FlashPartition(const Partition& target, const std::string& source_filename);
 
-// Reads a file into memory; stores the file contents and associated metadata in *file. Returns 0
-// on success, or -1 on error.
-int LoadFileContents(const std::string& filename, FileContents* file);
+// Reads a file into memory; stores the file contents and associated metadata in *file.
+bool LoadFileContents(const std::string& filename, FileContents* file);
 
-// Saves the given FileContents object to the given filename. Returns 0 on success, or -1 on error.
-int SaveFileContents(const std::string& filename, const FileContents* file);
+// Saves the given FileContents object to the given filename.
+bool SaveFileContents(const std::string& filename, const FileContents* file);
 
 // bspatch.cpp
 
diff --git a/tests/unit/applypatch_test.cpp b/tests/unit/applypatch_test.cpp
index 4204074..066f981 100644
--- a/tests/unit/applypatch_test.cpp
+++ b/tests/unit/applypatch_test.cpp
@@ -49,13 +49,13 @@
   void SetUp() override {
     source_file = from_testdata_base("boot.img");
     FileContents boot_fc;
-    ASSERT_EQ(0, LoadFileContents(source_file, &boot_fc));
+    ASSERT_TRUE(LoadFileContents(source_file, &boot_fc));
     source_size = boot_fc.data.size();
     source_sha1 = print_sha1(boot_fc.sha1);
 
     target_file = from_testdata_base("recovery.img");
     FileContents recovery_fc;
-    ASSERT_EQ(0, LoadFileContents(target_file, &recovery_fc));
+    ASSERT_TRUE(LoadFileContents(target_file, &recovery_fc));
     target_size = recovery_fc.data.size();
     target_sha1 = print_sha1(recovery_fc.sha1);
 
@@ -135,11 +135,11 @@
 
 TEST_F(ApplyPatchTest, PatchPartition) {
   FileContents patch_fc;
-  ASSERT_EQ(0, LoadFileContents(from_testdata_base("recovery-from-boot.p"), &patch_fc));
+  ASSERT_TRUE(LoadFileContents(from_testdata_base("recovery-from-boot.p"), &patch_fc));
   Value patch(Value::Type::BLOB, std::string(patch_fc.data.cbegin(), patch_fc.data.cend()));
 
   FileContents bonus_fc;
-  ASSERT_EQ(0, LoadFileContents(from_testdata_base("bonus.file"), &bonus_fc));
+  ASSERT_TRUE(LoadFileContents(from_testdata_base("bonus.file"), &bonus_fc));
   Value bonus(Value::Type::BLOB, std::string(bonus_fc.data.cbegin(), bonus_fc.data.cend()));
 
   ASSERT_TRUE(PatchPartition(target_partition, source_partition, patch, &bonus));
@@ -149,7 +149,7 @@
 // everything).
 TEST_F(ApplyPatchTest, PatchPartitionWithoutBonusFile) {
   FileContents patch_fc;
-  ASSERT_EQ(0, LoadFileContents(from_testdata_base("recovery-from-boot-with-bonus.p"), &patch_fc));
+  ASSERT_TRUE(LoadFileContents(from_testdata_base("recovery-from-boot-with-bonus.p"), &patch_fc));
   Value patch(Value::Type::BLOB, std::string(patch_fc.data.cbegin(), patch_fc.data.cend()));
 
   ASSERT_TRUE(PatchPartition(target_partition, source_partition, patch, nullptr));