| Index: delta_performer_unittest.cc
|
| diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
|
| index e9d44fa31746ed8ba3f53630d81487dc2cf5bda9..3c05b1d9f62dc44c14d04e21dc5fdba2d8b8b07f 100755
|
| --- a/delta_performer_unittest.cc
|
| +++ b/delta_performer_unittest.cc
|
| @@ -9,6 +9,7 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| +#include <base/file_util.h>
|
| #include <base/scoped_ptr.h>
|
| #include <base/string_util.h>
|
| #include <google/protobuf/repeated_field.h>
|
| @@ -112,7 +113,7 @@ bool WriteSparseFile(const string& path, off_t size) {
|
| return true;
|
| }
|
|
|
| -void DoSmallImageTest(bool full_kernel) {
|
| +void DoSmallImageTest(bool full_kernel, bool noop) {
|
| string a_img, b_img;
|
| EXPECT_TRUE(utils::MakeTempFile("/tmp/a_img.XXXXXX", &a_img, NULL));
|
| ScopedPathUnlinker a_img_unlinker(a_img);
|
| @@ -120,7 +121,6 @@ void DoSmallImageTest(bool full_kernel) {
|
| ScopedPathUnlinker b_img_unlinker(b_img);
|
|
|
| CreateExtImageAtPath(a_img, NULL);
|
| - CreateExtImageAtPath(b_img, NULL);
|
|
|
| int image_size = static_cast<int>(utils::FileSize(a_img));
|
|
|
| @@ -129,12 +129,7 @@ void DoSmallImageTest(bool full_kernel) {
|
| "dd if=/dev/zero of=%s seek=%d bs=1 count=1",
|
| a_img.c_str(),
|
| image_size + 1024 * 1024 - 1)));
|
| - EXPECT_EQ(0, System(base::StringPrintf(
|
| - "dd if=/dev/zero of=%s seek=%d bs=1 count=1",
|
| - b_img.c_str(),
|
| - image_size + 1024 * 1024 - 1)));
|
| EXPECT_EQ(image_size + 1024 * 1024, utils::FileSize(a_img));
|
| - EXPECT_EQ(image_size + 1024 * 1024, utils::FileSize(b_img));
|
|
|
| // Make some changes to the A image.
|
| {
|
| @@ -154,8 +149,17 @@ void DoSmallImageTest(bool full_kernel) {
|
| ones.size()));
|
| }
|
|
|
| - // Make some changes to the B image.
|
| - {
|
| + if (noop) {
|
| + EXPECT_TRUE(file_util::CopyFile(FilePath(a_img), FilePath(b_img)));
|
| + } else {
|
| + CreateExtImageAtPath(b_img, NULL);
|
| + EXPECT_EQ(0, System(base::StringPrintf(
|
| + "dd if=/dev/zero of=%s seek=%d bs=1 count=1",
|
| + b_img.c_str(),
|
| + image_size + 1024 * 1024 - 1)));
|
| + EXPECT_EQ(image_size + 1024 * 1024, utils::FileSize(b_img));
|
| +
|
| + // Make some changes to the B image.
|
| string b_mnt;
|
| ScopedLoopMounter b_mounter(b_img, &b_mnt, 0);
|
|
|
| @@ -196,6 +200,10 @@ void DoSmallImageTest(bool full_kernel) {
|
| const char* new_data_string = "This is new data.";
|
| strcpy(&new_kernel_data[0], new_data_string);
|
|
|
| + if (noop) {
|
| + old_kernel_data = new_kernel_data;
|
| + }
|
| +
|
| // Write kernels to disk
|
| EXPECT_TRUE(utils::WriteFile(
|
| old_kernel.c_str(), &old_kernel_data[0], old_kernel_data.size()));
|
| @@ -258,6 +266,11 @@ void DoSmallImageTest(bool full_kernel) {
|
| EXPECT_EQ(expected_sig_data_length, manifest.signatures_size());
|
| EXPECT_FALSE(signature.data().empty());
|
|
|
| + if (noop) {
|
| + EXPECT_EQ(1, manifest.install_operations_size());
|
| + EXPECT_EQ(1, manifest.kernel_install_operations_size());
|
| + }
|
| +
|
| if (full_kernel) {
|
| EXPECT_FALSE(manifest.has_old_kernel_info());
|
| } else {
|
| @@ -333,11 +346,15 @@ void DoSmallImageTest(bool full_kernel) {
|
| }
|
|
|
| TEST(DeltaPerformerTest, RunAsRootSmallImageTest) {
|
| - DoSmallImageTest(false);
|
| + DoSmallImageTest(false, false);
|
| }
|
|
|
| TEST(DeltaPerformerTest, RunAsRootFullKernelSmallImageTest) {
|
| - DoSmallImageTest(true);
|
| + DoSmallImageTest(true, false);
|
| +}
|
| +
|
| +TEST(DeltaPerformerTest, RunAsRootNoopSmallImageTest) {
|
| + DoSmallImageTest(false, true);
|
| }
|
|
|
| TEST(DeltaPerformerTest, NewFullUpdateTest) {
|
|
|