[05/14] test: make crit-recode.py python2/python3 compatible

Submitted by Andrey Vagin on June 1, 2018, 9:02 p.m.

Details

Message ID 20180601210304.30164-6-avagin@virtuozzo.com
State Accepted
Series "More changes to be compatible with python 3"
Headers show

Commit Message

Andrey Vagin June 1, 2018, 9:02 p.m.
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
---
 test/crit-recode.py | 43 +++++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 20 deletions(-)

Patch hide | download patch | download mbox

diff --git a/test/crit-recode.py b/test/crit-recode.py
index 0d4b31777..0cb3341d3 100755
--- a/test/crit-recode.py
+++ b/test/crit-recode.py
@@ -1,9 +1,11 @@ 
-#!/bin/env python2
+#!/usr/bin/env python
+# vim: noet ts=8 sw=8 sts=8
 
 import pycriu
 import sys
 import os
 import subprocess
+import json
 
 find = subprocess.Popen(['find', 'test/dump/', '-size', '+0', '-name', '*.img'],
 		stdout = subprocess.PIPE)
@@ -14,20 +16,21 @@  def recode_and_check(imgf, o_img, pretty):
 	try:
 		pb = pycriu.images.loads(o_img, pretty)
 	except pycriu.images.MagicException as me:
-		print "%s magic %x error" % (imgf, me.magic)
+		print("%s magic %x error" % (imgf, me.magic))
 		return False
-	except:
-		print "%s %sdecode fails" % (imgf, pretty and 'pretty ' or '')
+	except Exception as e:
+		print("%s %sdecode fails: %s" % (imgf, pretty and 'pretty ' or '', e))
 		return False
 
 	try:
 		r_img = pycriu.images.dumps(pb)
-	except:
-		print "%s %sencode fails" % (imgf, pretty and 'pretty ' or '')
+	except Exception as e:
+		r_img = pycriu.images.dumps(pb)
+		print("%s %s encode fails: %s" % (imgf, pretty and 'pretty ' or '', e))
 		return False
 
 	if o_img != r_img:
-		print "%s %srecode mismatch" % (imgf, pretty and 'pretty ' or '')
+		print("%s %s recode mismatch" % (imgf, pretty and 'pretty ' or ''))
 		return False
 
 	return True
@@ -37,28 +40,28 @@  for imgf in find.stdout.readlines():
 	imgf = imgf.strip()
 	imgf_b = os.path.basename(imgf)
 
-	if imgf_b.startswith('pages-'):
+	if imgf_b.startswith(b'pages-'):
 		continue
-	if imgf_b.startswith('iptables-'):
+	if imgf_b.startswith(b'iptables-'):
 		continue
-	if imgf_b.startswith('ip6tables-'):
+	if imgf_b.startswith(b'ip6tables-'):
 		continue
-	if imgf_b.startswith('route-'):
+	if imgf_b.startswith(b'route-'):
 		continue
-	if imgf_b.startswith('route6-'):
+	if imgf_b.startswith(b'route6-'):
 		continue
-	if imgf_b.startswith('ifaddr-'):
+	if imgf_b.startswith(b'ifaddr-'):
 		continue
-	if imgf_b.startswith('tmpfs-'):
+	if imgf_b.startswith(b'tmpfs-'):
 		continue
-	if imgf_b.startswith('netns-ct-'):
+	if imgf_b.startswith(b'netns-ct-'):
 		continue
-	if imgf_b.startswith('netns-exp-'):
+	if imgf_b.startswith(b'netns-exp-'):
 		continue
-	if imgf_b.startswith('rule-'):
+	if imgf_b.startswith(b'rule-'):
 		continue
 
-	o_img = open(imgf).read()
+	o_img = open(imgf.decode(), "rb").read()
 	if not recode_and_check(imgf, o_img, False):
 		test_pass = False
 	if not recode_and_check(imgf, o_img, True):
@@ -67,7 +70,7 @@  for imgf in find.stdout.readlines():
 find.wait()
 
 if not test_pass:
-	print "FAIL"
+	print("FAIL")
 	sys.exit(1)
 
-print "PASS"
+print("PASS")