OLD | NEW |
1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <sys/mount.h> | 5 #include <sys/mount.h> |
6 #include <inttypes.h> | 6 #include <inttypes.h> |
7 | 7 |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 const size_t kBytesPerWrite = 5; | 279 const size_t kBytesPerWrite = 5; |
280 for (size_t i = 0; i < delta.size(); i += kBytesPerWrite) { | 280 for (size_t i = 0; i < delta.size(); i += kBytesPerWrite) { |
281 size_t count = min(delta.size() - i, kBytesPerWrite); | 281 size_t count = min(delta.size() - i, kBytesPerWrite); |
282 EXPECT_EQ(count, performer.Write(&delta[i], count)); | 282 EXPECT_EQ(count, performer.Write(&delta[i], count)); |
283 } | 283 } |
284 | 284 |
285 // Wrapper around close. Returns 0 on success or -errno on error. | 285 // Wrapper around close. Returns 0 on success or -errno on error. |
286 EXPECT_EQ(0, performer.Close()); | 286 EXPECT_EQ(0, performer.Close()); |
287 | 287 |
288 CompareFilesByBlock(old_kernel, new_kernel); | 288 CompareFilesByBlock(old_kernel, new_kernel); |
| 289 CompareFilesByBlock(a_img, b_img); |
289 | 290 |
290 vector<char> updated_kernel_partition; | 291 vector<char> updated_kernel_partition; |
291 EXPECT_TRUE(utils::ReadFile(old_kernel, &updated_kernel_partition)); | 292 EXPECT_TRUE(utils::ReadFile(old_kernel, &updated_kernel_partition)); |
292 EXPECT_EQ(0, strncmp(&updated_kernel_partition[0], new_data_string, | 293 EXPECT_EQ(0, strncmp(&updated_kernel_partition[0], new_data_string, |
293 strlen(new_data_string))); | 294 strlen(new_data_string))); |
294 | 295 |
295 EXPECT_TRUE(utils::FileExists(kUnittestPublicKeyPath)); | 296 EXPECT_TRUE(utils::FileExists(kUnittestPublicKeyPath)); |
296 EXPECT_TRUE(performer.VerifyPayload( | 297 EXPECT_TRUE(performer.VerifyPayload( |
297 kUnittestPublicKeyPath, | 298 kUnittestPublicKeyPath, |
298 OmahaHashCalculator::OmahaHashOfData(delta), | 299 OmahaHashCalculator::OmahaHashOfData(delta), |
299 delta.size())); | 300 delta.size())); |
| 301 EXPECT_TRUE(performer.VerifyAppliedUpdate(a_img, old_kernel)); |
300 } | 302 } |
301 | 303 |
302 TEST(DeltaPerformerTest, NewFullUpdateTest) { | 304 TEST(DeltaPerformerTest, NewFullUpdateTest) { |
303 vector<char> new_root(20 * 1024 * 1024); | 305 vector<char> new_root(20 * 1024 * 1024); |
304 vector<char> new_kern(16 * 1024 * 1024); | 306 vector<char> new_kern(16 * 1024 * 1024); |
305 const off_t kChunkSize = 128 * 1024; | 307 const off_t kChunkSize = 128 * 1024; |
306 FillWithData(&new_root); | 308 FillWithData(&new_root); |
307 FillWithData(&new_kern); | 309 FillWithData(&new_kern); |
308 | 310 |
309 string new_root_path; | 311 string new_root_path; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 op.clear_src_extents(); | 372 op.clear_src_extents(); |
371 *(op.add_src_extents()) = ExtentForRange(5, 3); | 373 *(op.add_src_extents()) = ExtentForRange(5, 3); |
372 EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op)); | 374 EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op)); |
373 *(op.add_dst_extents()) = ExtentForRange(20, 6); | 375 *(op.add_dst_extents()) = ExtentForRange(20, 6); |
374 EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op)); | 376 EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op)); |
375 *(op.add_src_extents()) = ExtentForRange(19, 2); | 377 *(op.add_src_extents()) = ExtentForRange(19, 2); |
376 EXPECT_FALSE(DeltaPerformer::IsIdempotentOperation(op)); | 378 EXPECT_FALSE(DeltaPerformer::IsIdempotentOperation(op)); |
377 } | 379 } |
378 | 380 |
379 } // namespace chromeos_update_engine | 381 } // namespace chromeos_update_engine |
OLD | NEW |