Correctly handle reuse of screens in yaml file.

BUG=chromium-os:12161
TEST=manual

  cd src/platform/vboot_reference
  make
  make runbmptests

Change-Id: Ic7708474ce7009744c9f12154d1967bdae8e55d2

Review URL: http://codereview.chromium.org/6534025
diff --git a/tests/bitmaps/TestBmpBlock.py b/tests/bitmaps/TestBmpBlock.py
index 678fe31..265bd24 100755
--- a/tests/bitmaps/TestBmpBlock.py
+++ b/tests/bitmaps/TestBmpBlock.py
@@ -134,6 +134,29 @@
     rc, out, err = runprog('/bin/rm', '-f', 'ORDER1', 'ORDER2')
     self.assertEqual(0, rc)
 
+class TestReuse(unittest.TestCase):
+
+  def setUp(self):
+    rc, out, err = runprog('/bin/rm', '-rf', './FOO_DIR', 'FOO')
+    self.assertEqual(0, rc)
+
+  def testReuse(self):
+    """Reusing screens in the yaml file should be okay"""
+    rc, out, err = runprog(prog, '-c', 'case_reuse.yaml', 'FOO')
+    self.assertEqual(0, rc)
+    rc, out, err = runprog(prog, '-x', '-d', './FOO_DIR', 'FOO')
+    self.assertEqual(0, rc)
+    os.chdir('./FOO_DIR')
+    rc, out, err = runprog(prog, '-c', 'config.yaml', 'BAR')
+    self.assertEqual(0, rc)
+    rc, out, err = runprog('/usr/bin/cmp', '../FOO', 'BAR')
+    self.assertEqual(0, rc)
+    os.chdir('..')
+
+  def tearDown(self):
+    rc, out, err = runprog('/bin/rm', '-rf', './FOO_DIR', 'FOO')
+    self.assertEqual(0, rc)
+
 
 # Run these tests
 if __name__ == '__main__':
diff --git a/tests/bitmaps/case_reuse.yaml b/tests/bitmaps/case_reuse.yaml
new file mode 100644
index 0000000..4f62d56
--- /dev/null
+++ b/tests/bitmaps/case_reuse.yaml
@@ -0,0 +1,28 @@
+
+bmpblock: 1.0
+
+images:
+  image0:     Background.bmp
+  image1:     Word.bmp
+
+screens:
+  scr_a0:
+    - [0, 0, image0]
+
+  scr_b0:
+    - [0, 0, image0]
+
+  scr_c0:
+    - [0, 0, image0]
+
+  scr_d0:
+    - [0, 0, image0]
+
+  scr_z:
+    - [45, 45, image1 ]
+
+localizations:
+  - [ scr_a0, scr_b0, scr_c0, scr_d0 ]
+  - [ scr_a0, scr_b0, scr_c0, scr_z ]
+
+