Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Unified Diff: src/platform/update_engine/delta_diff_generator_unittest.cc

Issue 492008: AU: Try delta updates first, then full updates (Closed)
Patch Set: use mkstemp Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/platform/update_engine/delta_diff_generator.cc ('k') | src/platform/update_engine/download_action.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/platform/update_engine/delta_diff_generator_unittest.cc
diff --git a/src/platform/update_engine/delta_diff_generator_unittest.cc b/src/platform/update_engine/delta_diff_generator_unittest.cc
index b549041f8f42da12da3fc921af784206fcff2cc6..f86f0e21211f3da10e60fe78d051a802ed6e44b7 100644
--- a/src/platform/update_engine/delta_diff_generator_unittest.cc
+++ b/src/platform/update_engine/delta_diff_generator_unittest.cc
@@ -6,6 +6,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
+#include <set>
#include <string>
#include <vector>
#include "base/string_util.h"
@@ -22,10 +23,17 @@
namespace chromeos_update_engine {
+using std::set;
using std::string;
using std::vector;
-class DeltaDiffGeneratorTest : public ::testing::Test {};
+class DeltaDiffGeneratorTest : public ::testing::Test {
+ virtual void TearDown() {
+ EXPECT_EQ(0, system("rm -rf diff-gen-test"));
+ }
+protected:
+ void FakerootEncodeDataToDeltaFileTest(bool test_diff_exclusion);
+};
namespace {
void DumpProto(const DeltaArchiveManifest* archive) {
@@ -350,6 +358,14 @@ TEST_F(DeltaDiffGeneratorTest, FakerootEncodeMetadataToProtoBufferTest) {
}
TEST_F(DeltaDiffGeneratorTest, FakerootEncodeDataToDeltaFileTest) {
+ FakerootEncodeDataToDeltaFileTest(false);
+}
+TEST_F(DeltaDiffGeneratorTest, FakerootDiffExclusionsTest) {
+ FakerootEncodeDataToDeltaFileTest(true);
+}
+
+void DeltaDiffGeneratorTest::FakerootEncodeDataToDeltaFileTest(
+ bool test_diff_exclusion) {
char cwd[1000];
ASSERT_EQ(cwd, getcwd(cwd, sizeof(cwd))) << "cwd buf possibly too small";
ASSERT_EQ(0, System(string("mkdir -p ") + cwd + "/diff-gen-test"));
@@ -359,6 +375,13 @@ TEST_F(DeltaDiffGeneratorTest, FakerootEncodeDataToDeltaFileTest) {
GenerateFilesAtPath(string(cwd) + "/diff-gen-test/new");
EditFilesAtPath(string(cwd) + "/diff-gen-test/new");
+ set<string> diff_exclusions;
+ if (test_diff_exclusion) {
+ diff_exclusions.insert("/encoding/long_small_change");
+ } else {
+ diff_exclusions.insert("/hi");
+ }
+
DeltaArchiveManifest* archive =
DeltaDiffGenerator::EncodeMetadataToProtoBuffer(
(string(cwd) + "/diff-gen-test/new").c_str());
@@ -369,7 +392,7 @@ TEST_F(DeltaDiffGeneratorTest, FakerootEncodeDataToDeltaFileTest) {
string(cwd) + "/diff-gen-test/old",
string(cwd) + "/diff-gen-test/new",
string(cwd) + "/diff-gen-test/out.dat",
- ""));
+ diff_exclusions, ""));
EXPECT_EQ(18, archive->files_size());
@@ -476,8 +499,11 @@ TEST_F(DeltaDiffGeneratorTest, FakerootEncodeDataToDeltaFileTest) {
EXPECT_EQ(0, long_small_change.uid());
EXPECT_EQ(0, long_small_change.gid());
EXPECT_TRUE(long_small_change.has_data_format());
- EXPECT_EQ(DeltaArchiveManifest_File_DataFormat_BSDIFF,
- long_small_change.data_format());
+ DeltaArchiveManifest_File_DataFormat expected_format =
+ DeltaArchiveManifest_File_DataFormat_BSDIFF;
+ if (test_diff_exclusion)
+ expected_format = DeltaArchiveManifest_File_DataFormat_FULL;
+ EXPECT_EQ(expected_format, long_small_change.data_format());
EXPECT_TRUE(long_small_change.has_data_offset());
EXPECT_TRUE(long_small_change.has_data_length());
EXPECT_FALSE(long_small_change.has_hardlink_path());
@@ -488,10 +514,9 @@ TEST_F(DeltaDiffGeneratorTest, FakerootEncodeDataToDeltaFileTest) {
EXPECT_TRUE(S_ISREG(nochange.mode()));
EXPECT_EQ(0, nochange.uid());
EXPECT_EQ(0, nochange.gid());
- EXPECT_TRUE(nochange.has_data_format());
- EXPECT_EQ(DeltaArchiveManifest_File_DataFormat_FULL, nochange.data_format());
- EXPECT_TRUE(nochange.has_data_offset());
- EXPECT_TRUE(nochange.has_data_length());
+ EXPECT_FALSE(nochange.has_data_format());
+ EXPECT_FALSE(nochange.has_data_offset());
+ EXPECT_FALSE(nochange.has_data_length());
EXPECT_FALSE(nochange.has_hardlink_path());
const DeltaArchiveManifest_File& onebyte =
@@ -566,9 +591,10 @@ TEST_F(DeltaDiffGeneratorTest, FakerootEncodeDataToDeltaFileTest) {
EXPECT_TRUE(S_ISREG(newempty.mode()));
EXPECT_EQ(0, newempty.uid());
EXPECT_EQ(0, newempty.gid());
- EXPECT_FALSE(newempty.has_data_format());
- EXPECT_FALSE(newempty.has_data_offset());
- EXPECT_FALSE(newempty.has_data_length());
+ EXPECT_TRUE(newempty.has_data_format());
+ EXPECT_EQ(DeltaArchiveManifest_File_DataFormat_FULL, newempty.data_format());
+ EXPECT_TRUE(newempty.has_data_offset());
+ EXPECT_TRUE(newempty.has_data_length());
EXPECT_FALSE(newempty.has_hardlink_path());
const DeltaArchiveManifest_File& subdir =
@@ -667,7 +693,7 @@ TEST_F(DeltaDiffParserTest, FakerootDecodeDataFromDeltaFileTest) {
string(cwd) + "/diff-gen-test/old",
string(cwd) + "/diff-gen-test/new",
string(cwd) + "/diff-gen-test/out.dat",
- ""));
+ set<string>(), ""));
// parse the file
DeltaDiffParser parser(string(cwd) + "/diff-gen-test/out.dat");
@@ -789,7 +815,8 @@ TEST_F(DeltaDiffParserTest, FakerootDecodeDataFromDeltaFileTest) {
// newempty
file = parser.GetFileAtPath("/dir/newempty");
EXPECT_TRUE(S_ISREG(file.mode()));
- EXPECT_FALSE(file.has_data_format());
+ EXPECT_TRUE(file.has_data_format());
+ EXPECT_EQ(DeltaArchiveManifest_File_DataFormat_FULL, file.data_format());
// subdir
file = parser.GetFileAtPath("/dir/subdir");
@@ -845,7 +872,7 @@ TEST_F(DeltaDiffParserTest, FakerootDecodeDataFromDeltaFileTest) {
cmd.push_back(string(cwd) + "/diff-gen-test/patch_result");
cmd.push_back(string(cwd) + "/diff-gen-test/patch");
Subprocess::SynchronousExec(cmd, &rc);
- EXPECT_EQ(0, rc);
+ ASSERT_EQ(0, rc);
vector<char> patch_result;
EXPECT_TRUE(utils::ReadFile(string(cwd) + "/diff-gen-test/patch_result",
&patch_result));
@@ -857,12 +884,9 @@ TEST_F(DeltaDiffParserTest, FakerootDecodeDataFromDeltaFileTest) {
// nochange
file = parser.GetFileAtPath("/encoding/nochange");
EXPECT_TRUE(S_ISREG(file.mode()));
- EXPECT_TRUE(file.has_data_format());
- EXPECT_EQ(DeltaArchiveManifest_File_DataFormat_FULL, file.data_format());
- EXPECT_EQ("nochange\n", ReadFilePartToString(string(cwd) +
- "/diff-gen-test/out.dat",
- file.data_offset(),
- file.data_length()));
+ EXPECT_FALSE(file.has_data_format());
+ EXPECT_FALSE(file.has_data_offset());
+ EXPECT_FALSE(file.has_data_length());
// onebyte
file = parser.GetFileAtPath("/encoding/onebyte");
« no previous file with comments | « src/platform/update_engine/delta_diff_generator.cc ('k') | src/platform/update_engine/download_action.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698