summaryrefslogtreecommitdiff
path: root/tests/bitmaps/TestBmpBlock.py
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2011-02-14 10:28:03 -0800
committerBill Richardson <wfrichar@chromium.org>2011-02-14 10:28:03 -0800
commit61362d65fcdd6f6aff90fc5be51237b39cfeb9ae (patch)
tree1c8ed7c2cce7e891c442ac32aecfe5427c8efd32 /tests/bitmaps/TestBmpBlock.py
parenta985ed405e7b7640fbc9499d676670b8cd366a7a (diff)
downloadvboot-61362d65fcdd6f6aff90fc5be51237b39cfeb9ae.tar.gz
Enable EFIv1 compression in bmpbklk_utility.
This lets bmpbklk_utility generate BMPBLOCKs with EFIv1-compressed bitmaps. It also adds the ability to display or unpack BMPBLOCK blobs. The compression/decompression routines come from the tianocore EDK on sourceforge and are written in C, so now there's a mix of C and C++, but it works just fine. BUG=chromium-os:11491 TEST=manual cd src/platform/vboot_reference make make runbmptests Review URL: http://codereview.chromium.org/6508006 Change-Id: Ie05e1a3fd42f4694447c8c440b2432af4ac0f601
Diffstat (limited to 'tests/bitmaps/TestBmpBlock.py')
-rwxr-xr-xtests/bitmaps/TestBmpBlock.py68
1 files changed, 67 insertions, 1 deletions
diff --git a/tests/bitmaps/TestBmpBlock.py b/tests/bitmaps/TestBmpBlock.py
index 77ef4199..ced270ee 100755
--- a/tests/bitmaps/TestBmpBlock.py
+++ b/tests/bitmaps/TestBmpBlock.py
@@ -19,7 +19,7 @@ def runprog(*args):
return (p.returncode, out, err)
-class TestBmpBlock(unittest.TestCase):
+class TestFailures(unittest.TestCase):
def testNoArgs(self):
"""Running with no args should print usage and fail."""
@@ -40,6 +40,72 @@ class TestBmpBlock(unittest.TestCase):
self.assertNotEqual(0, rc)
self.assertTrue(err.count("Unsupported image format"))
+ def testBadCompression(self):
+ """Wrong compression types should fail."""
+ rc, out, err = runprog(prog, '-z', '99', '-c', 'case_simple.yaml', 'FOO')
+ self.assertNotEqual(0, rc)
+ self.assertTrue(err.count("compression type"))
+
+
+class TestOverWrite(unittest.TestCase):
+
+ def setUp(self):
+ rc, out, err = runprog('/bin/rm', '-rf', './FOO_DIR', 'FOO')
+ self.assertEqual(0, rc)
+
+ def testOverwrite(self):
+ """Create, unpack, unpack again, with and without -f"""
+ rc, out, err = runprog(prog, '-c', 'case_simple.yaml', 'FOO')
+ self.assertEqual(0, rc)
+ rc, out, err = runprog(prog, '-x', '-d', './FOO_DIR', 'FOO')
+ self.assertEqual(0, rc)
+ rc, out, err = runprog(prog, '-x', '-d', './FOO_DIR', 'FOO')
+ self.assertNotEqual(0, rc)
+ self.assertTrue(err.count("File exists"))
+ rc, out, err = runprog(prog, '-x', '-d', './FOO_DIR', '-f', 'FOO')
+ self.assertEqual(0, rc)
+
+ def tearDown(self):
+ rc, out, err = runprog('/bin/rm', '-rf', './FOO_DIR', 'FOO')
+ self.assertEqual(0, rc)
+
+
+class TestPackUnpack(unittest.TestCase):
+
+ def setUp(self):
+ rc, out, err = runprog('/bin/rm', '-rf', './FOO_DIR', 'FOO')
+ self.assertEqual(0, rc)
+
+ def testPackUnpack(self):
+ """Create, unpack, recreate without compression"""
+ rc, out, err = runprog(prog, '-c', 'case_simple.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 testPackUnpackZ(self):
+ """Create, unpack, recreate with explicit compression"""
+ rc, out, err = runprog(prog, '-z', '1', '-c', 'case_simple.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, '-z', '1', '-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__':