AU: When generating delta, use scratch off end of filesystem

This idea was originally coded by Darin Petkov, but was lost during a
separate bug fix a while ago. This CL restores the functionality.

The partition limit is set to 1GiB right now.

BUG=7444
TEST=tested generating/applying on host and checking results; unittest; tested specific case 110.9->128.4 that release engineers saw

Change-Id: I28a9a8d7025b83ec20b91e97dce5b783fc060b7c

Review URL: http://codereview.chromium.org/5548002
diff --git a/delta_diff_generator_unittest.cc b/delta_diff_generator_unittest.cc
index 4a11c52..2a70399 100644
--- a/delta_diff_generator_unittest.cc
+++ b/delta_diff_generator_unittest.cc
@@ -525,7 +525,8 @@
                                                     temp_dir,
                                                     fd,
                                                     &data_file_size,
-                                                    &final_order));
+                                                    &final_order,
+                                                    Vertex::kInvalidIndex));
 
 
   Graph expected_graph(12);
@@ -728,4 +729,16 @@
   EXPECT_EQ(OP_REPLACE_BZ, graph[5].op.type());
 }
 
+TEST_F(DeltaDiffGeneratorTest, CreateScratchNodeTest) {
+  Vertex vertex;
+  DeltaDiffGenerator::CreateScratchNode(12, 34, &vertex);
+  EXPECT_EQ(DeltaArchiveManifest_InstallOperation_Type_REPLACE_BZ,
+            vertex.op.type());
+  EXPECT_EQ(0, vertex.op.data_offset());
+  EXPECT_EQ(0, vertex.op.data_length());
+  EXPECT_EQ(1, vertex.op.dst_extents_size());
+  EXPECT_EQ(12, vertex.op.dst_extents(0).start_block());
+  EXPECT_EQ(34, vertex.op.dst_extents(0).num_blocks());
+}
+
 }  // namespace chromeos_update_engine