AU: Include old kernel hash for source partition verification.

The hash is included (and, consequently, check by the client) only if a true
delta kernel update is generated.

BUG=7705
TEST=unit tests, generated delta and installed on device

Change-Id: I4483a176b177f3068d699dc962255c92ca601156

Review URL: http://codereview.chromium.org/3762007
diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
index 5a48441..e9d44fa 100755
--- a/delta_performer_unittest.cc
+++ b/delta_performer_unittest.cc
@@ -258,9 +258,12 @@
     EXPECT_EQ(expected_sig_data_length, manifest.signatures_size());
     EXPECT_FALSE(signature.data().empty());
 
-    // TODO(petkov): Add a test once the generator start sending old kernel
-    // info.
-    EXPECT_FALSE(manifest.has_old_kernel_info());
+    if (full_kernel) {
+      EXPECT_FALSE(manifest.has_old_kernel_info());
+    } else {
+      EXPECT_EQ(old_kernel_data.size(), manifest.old_kernel_info().size());
+      EXPECT_FALSE(manifest.old_kernel_info().hash().empty());
+    }
 
     EXPECT_EQ(new_kernel_data.size(), manifest.new_kernel_info().size());
     EXPECT_EQ(image_size, manifest.old_rootfs_info().size());
@@ -288,14 +291,20 @@
   // Update the A image in place.
   DeltaPerformer performer(&prefs);
 
+  vector<char> rootfs_hash;
+  EXPECT_EQ(image_size,
+            OmahaHashCalculator::RawHashOfFile(a_img,
+                                               image_size,
+                                               &rootfs_hash));
+  performer.set_current_rootfs_hash(&rootfs_hash);
+  vector<char> kernel_hash;
+  EXPECT_TRUE(OmahaHashCalculator::RawHashOfData(old_kernel_data,
+                                                 &kernel_hash));
+  performer.set_current_kernel_hash(&kernel_hash);
+
   EXPECT_EQ(0, performer.Open(a_img.c_str(), 0, 0));
   EXPECT_TRUE(performer.OpenKernel(old_kernel.c_str()));
 
-  vector<char> rootfs_hash;
-  CHECK_EQ(image_size,
-           OmahaHashCalculator::RawHashOfFile(a_img, image_size, &rootfs_hash));
-  performer.set_current_rootfs_hash(&rootfs_hash);
-
   // Write at some number of bytes per operation. Arbitrarily chose 5.
   const size_t kBytesPerWrite = 5;
   for (size_t i = 0; i < delta.size(); i += kBytesPerWrite) {