[bmap-tools] [PATCH 15/16] test_compat: new test for checking backward-compatibility

Artem Bityutskiy dedekind1 at gmail.com
Mon Nov 4 03:05:35 EST 2013


From: Artem Bityutskiy <artem.bityutskiy at intel.com>

This test makes sure that BmapCopy works fine with all the previous bmap file
formats.

Change-Id: Ia3da88a99b32497f8ca782630d698ca54cfafc09
Signed-off-by: Artem Bityutskiy <artem.bityutskiy at intel.com>
---
 tests/test_compat.py | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 tests/test_compat.py

diff --git a/tests/test_compat.py b/tests/test_compat.py
new file mode 100644
index 0000000..d0ba703
--- /dev/null
+++ b/tests/test_compat.py
@@ -0,0 +1,78 @@
+# Copyright (c) 2012-2013 Intel, Inc.
+# License: GPLv2
+# Author: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2,
+# as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+"""
+This unit test verifies that BmapCopy can handle all the bmap file formats and
+have no backward-compatibility problems.
+"""
+
+import os
+import shutil
+import tempfile
+from tests import helpers
+from bmaptools import TransRead
+
+# This is a work-around for Centos 6
+try:
+    import unittest2 as unittest
+except ImportError:
+    import unittest
+
+class TestCreateCopy(unittest.TestCase):
+    """
+    The test class for this unit tests which executes the '_do_test()' function
+    for various bmap file formats.
+    """
+
+    def test(self):
+        """
+        The test entry point. Executes the '_do_test()' function for various
+        bmap file formats.
+        """
+
+        image_name = "test.image.gz"
+        bmap_name  = "test.image.bmap.v"
+        test_data_dir = "test-data"
+
+        test_data_dir = os.path.join(os.path.dirname(__file__), test_data_dir)
+        image_path = os.path.join(test_data_dir, image_name)
+
+
+        # Get the list of bmap files to test
+        bmap_paths = []
+        for direntry in os.listdir(test_data_dir):
+            direntry_path = os.path.join(test_data_dir, direntry)
+            if os.path.isfile(direntry_path) and direntry.startswith(bmap_name):
+                bmap_paths.append(direntry_path)
+
+        # Create and open a temporary file for uncompressed image and its copy
+        f_image = tempfile.NamedTemporaryFile("wb+", prefix=image_name,
+                                              suffix=".image")
+        f_copy = tempfile.NamedTemporaryFile("wb+", prefix=image_name,
+                                             suffix=".copy")
+
+        # Create an ucompressed version of the image file
+        f_tmp_img = TransRead.TransRead(image_path)
+        shutil.copyfileobj(f_tmp_img, f_image)
+        f_tmp_img.close()
+        f_image.flush()
+
+        image_chksum = helpers.calculate_chksum(f_image.name)
+        image_size = os.path.getsize(f_image.name)
+
+        for bmap_path in bmap_paths:
+            helpers.copy_and_verify_image(image_path, f_copy.name, bmap_path,
+                                          image_chksum, image_size)
+
+        f_copy.close()
+        f_image.close()
-- 
1.8.1.4




More information about the Bmap-tools mailing list