diff options
author | Bill Richardson <wfrichar@chromium.org> | 2011-02-14 10:28:03 -0800 |
---|---|---|
committer | Bill Richardson <wfrichar@chromium.org> | 2011-02-14 10:28:03 -0800 |
commit | 61362d65fcdd6f6aff90fc5be51237b39cfeb9ae (patch) | |
tree | 1c8ed7c2cce7e891c442ac32aecfe5427c8efd32 /tests/bitmaps/TestBmpBlock.py | |
parent | a985ed405e7b7640fbc9499d676670b8cd366a7a (diff) | |
download | vboot-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-x | tests/bitmaps/TestBmpBlock.py | 68 |
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__': |