|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] tools/misc/xencov_split: Add python 3 compatibility
Closes #154
Signed-off-by: Javi Merino <javi.merino@xxxxxxxxx>
---
Generating coverage data is a bit broken at the moment. Depending on
the compiler you are using, you would need "coverage: update gcov info
for newer versions of gcc" (Message-Id:
20230902151351.10325-1-javi.merino@xxxxxxxxx) which I just sent to the
list. On top of that, you would have to comment out the freeing of the
init sections due to #168 .
I have tested it with these two fixes and the python2 and python3
create the same outputs.
tools/misc/xencov_split | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/tools/misc/xencov_split b/tools/misc/xencov_split
index e4f68ebb6e..8f1271bfe7 100755
--- a/tools/misc/xencov_split
+++ b/tools/misc/xencov_split
@@ -1,5 +1,7 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
+from __future__ import print_function
+from builtins import str
import sys, os, os.path as path, struct, errno
from optparse import OptionParser
@@ -16,7 +18,7 @@ def xencov_split(opts):
input_file = opts.args[0]
- f = open(input_file)
+ f = open(input_file, "rb")
# Magic number
s = f.read(4)
@@ -31,9 +33,10 @@ def xencov_split(opts):
f.close()
while content:
- off = content.find('\x00')
+ off = content.find(b'\x00')
fmt = bo_prefix + str(off) + 's'
fn, = struct.unpack_from(fmt, content)
+ fn = fn.decode('utf-8')
content = content[off+1:]
fmt = bo_prefix + 'I'
@@ -51,14 +54,14 @@ def xencov_split(opts):
dir = opts.output_dir + path.dirname(fn)
try:
os.makedirs(dir)
- except OSError, e:
+ except OSError as e:
if e.errno == errno.EEXIST and os.path.isdir(dir):
pass
else:
raise
full_path = dir + '/' + path.basename(fn)
- f = open(full_path, "w")
+ f = open(full_path, "wb")
f.write(payload)
f.close()
@@ -89,8 +92,8 @@ def main():
if __name__ == "__main__":
try:
sys.exit(main())
- except Exception, e:
- print >>sys.stderr, "Error:", e
+ except Exception as e:
+ print("Error:", e, file=sys.stderr)
sys.exit(1)
except KeyboardInterrupt:
sys.exit(1)
--
2.41.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |