[parted-devel] [PATCH 1/2] Modify gpt-header-move and msdos-overlap to work with py2 or py3

Brian C. Lane bcl at redhat.com
Wed Jun 27 22:53:45 BST 2018


Distributions are starting to remove python2 and only use python3.
Modify these test scripts so that they will work with either python 2.7
or python 3.X
---
 tests/gpt-header-move | 15 ++++++++-------
 tests/msdos-overlap   |  5 ++---
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/tests/gpt-header-move b/tests/gpt-header-move
index 05cdc65..3dda5cb 100755
--- a/tests/gpt-header-move
+++ b/tests/gpt-header-move
@@ -3,20 +3,21 @@
 # open img file, subtract 33 from altlba address, and move the last 33 sectors
 # back by 33 sectors
 
-from struct import *
+from struct import unpack_from, pack_into
 from zipfile import crc32
 import array
 import sys
+
 file = open(sys.argv[1],'rb+')
 file.seek(512)
 gptheader = file.read(512)
-altlba = unpack_from('<q', gptheader,offset=32)[0]
-gptheader = array.array('c',gptheader)
+altlba = unpack_from('<q', gptheader, offset=32)[0]
+gptheader = array.array('B', gptheader)
 pack_into('<Q', gptheader, 32, altlba-33)
 #zero header crc
 pack_into('<L', gptheader, 16, 0)
 #compute new crc
-newcrc = ((crc32(buffer(gptheader,0,92))) & 0xFFFFFFFF)
+newcrc = ((crc32(gptheader[:92])) & 0xFFFFFFFF)
 pack_into('<L', gptheader, 16, newcrc)
 file.seek(512)
 file.write(gptheader)
@@ -25,7 +26,7 @@ gptheader = file.read(512)
 file.seek(512*(altlba-32))
 backup = file.read(512*32)
 altlba -= 33
-gptheader = array.array('c',gptheader)
+gptheader = array.array('B',gptheader)
 #update mylba
 pack_into('<Q', gptheader, 24, altlba)
 #update table lba
@@ -33,9 +34,9 @@ pack_into('<Q', gptheader, 72, altlba-32)
 #zero header crc
 pack_into('<L', gptheader, 16, 0)
 #compute new crc
-newcrc = ((crc32(buffer(gptheader,0,92))) & 0xFFFFFFFF)
+newcrc = ((crc32(gptheader[:92])) & 0xFFFFFFFF)
 pack_into('<L', gptheader, 16, newcrc)
 file.seek(512*(altlba-32))
 file.write(backup)
 file.write(gptheader)
-file.write("\0" * (512 * 33))
+file.write(b"\0" * (512 * 33))
diff --git a/tests/msdos-overlap b/tests/msdos-overlap
index 5bddfb0..48cfa7f 100755
--- a/tests/msdos-overlap
+++ b/tests/msdos-overlap
@@ -14,12 +14,11 @@ BAD_ENTRY = (0x72, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 OFFSET = 0x1b8
 
 if len(sys.argv) < 2:
-    print "%s: <image or device>"
+    print("%s: <image or device>" % sys.argv[0])
     sys.exit(1)
 
-data = "".join(chr(c) for c in BAD_ENTRY)
 with open(sys.argv[1], "rb+") as f:
     f.seek(OFFSET, 0)
-    f.write(data)
+    f.write(bytes(BAD_ENTRY))
 
 sys.exit(0)
-- 
2.17.1




More information about the parted-devel mailing list