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

Side by Side Diff: delta_performer_unittest.cc

Issue 3588015: AU: Include the old/new kernel/rootfs size/hash in the update metadata. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: no need to close negative handles Created 10 years, 2 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 delta_path, 207 delta_path,
208 kUnittestPrivateKeyPath)); 208 kUnittestPrivateKeyPath));
209 } 209 }
210 210
211 // Read delta into memory. 211 // Read delta into memory.
212 vector<char> delta; 212 vector<char> delta;
213 EXPECT_TRUE(utils::ReadFile(delta_path, &delta)); 213 EXPECT_TRUE(utils::ReadFile(delta_path, &delta));
214 214
215 uint64_t manifest_metadata_size; 215 uint64_t manifest_metadata_size;
216 216
217 // Check that the null signature blob exists 217 // Check the metadata.
218 { 218 {
219 LOG(INFO) << "delta size: " << delta.size(); 219 LOG(INFO) << "delta size: " << delta.size();
220 DeltaArchiveManifest manifest; 220 DeltaArchiveManifest manifest;
221 const int kManifestSizeOffset = 12; 221 const int kManifestSizeOffset = 12;
222 const int kManifestOffset = 20; 222 const int kManifestOffset = 20;
223 uint64_t manifest_size = 0; 223 uint64_t manifest_size = 0;
224 memcpy(&manifest_size, &delta[kManifestSizeOffset], sizeof(manifest_size)); 224 memcpy(&manifest_size, &delta[kManifestSizeOffset], sizeof(manifest_size));
225 manifest_size = be64toh(manifest_size); 225 manifest_size = be64toh(manifest_size);
226 LOG(INFO) << "manifest size: " << manifest_size; 226 LOG(INFO) << "manifest size: " << manifest_size;
227 EXPECT_TRUE(manifest.ParseFromArray(&delta[kManifestOffset], 227 EXPECT_TRUE(manifest.ParseFromArray(&delta[kManifestOffset],
228 manifest_size)); 228 manifest_size));
229 EXPECT_TRUE(manifest.has_signatures_offset()); 229 EXPECT_TRUE(manifest.has_signatures_offset());
230 manifest_metadata_size = kManifestOffset + manifest_size; 230 manifest_metadata_size = kManifestOffset + manifest_size;
231 231
232 Signatures sigs_message; 232 Signatures sigs_message;
233 EXPECT_TRUE(sigs_message.ParseFromArray( 233 EXPECT_TRUE(sigs_message.ParseFromArray(
234 &delta[manifest_metadata_size + manifest.signatures_offset()], 234 &delta[manifest_metadata_size + manifest.signatures_offset()],
235 manifest.signatures_size())); 235 manifest.signatures_size()));
236 EXPECT_EQ(1, sigs_message.signatures_size()); 236 EXPECT_EQ(1, sigs_message.signatures_size());
237 const Signatures_Signature& signature = sigs_message.signatures(0); 237 const Signatures_Signature& signature = sigs_message.signatures(0);
238 EXPECT_EQ(1, signature.version()); 238 EXPECT_EQ(1, signature.version());
239 239
240 uint64_t expected_sig_data_length = 0; 240 uint64_t expected_sig_data_length = 0;
241 EXPECT_TRUE(PayloadSigner::SignatureBlobLength(kUnittestPrivateKeyPath, 241 EXPECT_TRUE(PayloadSigner::SignatureBlobLength(kUnittestPrivateKeyPath,
242 &expected_sig_data_length)); 242 &expected_sig_data_length));
243 EXPECT_EQ(expected_sig_data_length, manifest.signatures_size()); 243 EXPECT_EQ(expected_sig_data_length, manifest.signatures_size());
244 EXPECT_FALSE(signature.data().empty()); 244 EXPECT_FALSE(signature.data().empty());
245
246 EXPECT_EQ(old_kernel_data.size(), manifest.old_kernel_info().size());
247 EXPECT_EQ(new_kernel_data.size(), manifest.new_kernel_info().size());
248 EXPECT_EQ(utils::FileSize(a_img), manifest.old_rootfs_info().size());
249 EXPECT_EQ(utils::FileSize(b_img), manifest.new_rootfs_info().size());
245 } 250 }
246 251
247 PrefsMock prefs; 252 PrefsMock prefs;
248 EXPECT_CALL(prefs, SetInt64(kPrefsManifestMetadataSize, 253 EXPECT_CALL(prefs, SetInt64(kPrefsManifestMetadataSize,
249 manifest_metadata_size)).WillOnce(Return(true)); 254 manifest_metadata_size)).WillOnce(Return(true));
250 EXPECT_CALL(prefs, SetInt64(kPrefsUpdateStateNextOperation, _)) 255 EXPECT_CALL(prefs, SetInt64(kPrefsUpdateStateNextOperation, _))
251 .WillRepeatedly(Return(true)); 256 .WillRepeatedly(Return(true));
252 EXPECT_CALL(prefs, SetInt64(kPrefsUpdateStateNextDataOffset, _)) 257 EXPECT_CALL(prefs, SetInt64(kPrefsUpdateStateNextDataOffset, _))
253 .WillRepeatedly(Return(true)); 258 .WillRepeatedly(Return(true));
254 EXPECT_CALL(prefs, SetString(kPrefsUpdateStateSHA256Context, _)) 259 EXPECT_CALL(prefs, SetString(kPrefsUpdateStateSHA256Context, _))
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 graph[i].op.dst_extents(0).num_blocks()); 346 graph[i].op.dst_extents(0).num_blocks());
342 if (graph[i].op.type() != 347 if (graph[i].op.type() !=
343 DeltaArchiveManifest_InstallOperation_Type_REPLACE) { 348 DeltaArchiveManifest_InstallOperation_Type_REPLACE) {
344 EXPECT_EQ(DeltaArchiveManifest_InstallOperation_Type_REPLACE_BZ, 349 EXPECT_EQ(DeltaArchiveManifest_InstallOperation_Type_REPLACE_BZ,
345 graph[i].op.type()); 350 graph[i].op.type());
346 } 351 }
347 } 352 }
348 } 353 }
349 354
350 } // namespace chromeos_update_engine 355 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « delta_diff_generator.cc ('k') | omaha_hash_calculator.h » ('j') | omaha_hash_calculator.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698