From dffd56d1d270e4797e43272a6c9000b8b8aeaf29 Mon Sep 17 00:00:00 2001 From: Paul Burton Date: Thu, 14 Sep 2017 14:34:43 -0700 Subject: test/py: Make print statements python 3.x safe In python 3.x print must be called as a function rather than used as a statement. Update uses of print to the function call syntax in order to be python 3.x safe. Signed-off-by: Paul Burton Reviewed-by: Stephen Warren --- test/py/tests/test_fit.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'test/py/tests') diff --git a/test/py/tests/test_fit.py b/test/py/tests/test_fit.py index e407ccc05a2..a0f9350411b 100755 --- a/test/py/tests/test_fit.py +++ b/test/py/tests/test_fit.py @@ -3,6 +3,8 @@ # # Sanity check of the FIT handling in U-Boot +from __future__ import print_function + import os import pytest import struct @@ -153,7 +155,7 @@ def test_fit(u_boot_console): src = make_fname('u-boot.dts') dtb = make_fname('u-boot.dtb') with open(src, 'w') as fd: - print >> fd, base_fdt + print(base_fdt, file=fd) util.run_and_log(cons, ['dtc', src, '-O', 'dtb', '-o', dtb]) return dtb @@ -167,7 +169,7 @@ def test_fit(u_boot_console): """ its = make_fname('test.its') with open(its, 'w') as fd: - print >> fd, base_its % params + print(base_its % params, file=fd) return its def make_fit(mkimage, params): @@ -186,7 +188,7 @@ def test_fit(u_boot_console): its = make_its(params) util.run_and_log(cons, [mkimage, '-f', its, fit]) with open(make_fname('u-boot.dts'), 'w') as fd: - print >> fd, base_fdt + print(base_fdt, file=fd) return fit def make_kernel(filename, text): @@ -202,7 +204,7 @@ def test_fit(u_boot_console): for i in range(100): data += 'this %s %d is unlikely to boot\n' % (text, i) with open(fname, 'w') as fd: - print >> fd, data + print(data, file=fd) return fname def make_ramdisk(filename, text): @@ -216,7 +218,7 @@ def test_fit(u_boot_console): for i in range(100): data += '%s %d was seldom used in the middle ages\n' % (text, i) with open(fname, 'w') as fd: - print >> fd, data + print(data, file=fd) return fname def find_matching(text, match): -- cgit v1.3.1 From 57bf9bea340690724df9de8ad82bf0d716efaa5b Mon Sep 17 00:00:00 2001 From: Paul Burton Date: Thu, 14 Sep 2017 14:34:48 -0700 Subject: test/py: fit: Open files as binary files The read_file() function in test_fit is used with files that are not text files, as well as some that are. It is never used in a way that requires it to decode text files to characters, so open all files in binary mode such that read() doesn't attempt to decode characters for files which are not text files. Without this test_fit fails on python 3.x when reading an FDT in run_fit_test() with: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte Signed-off-by: Paul Burton Reviewed-by: Stephen Warren --- test/py/tests/test_fit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/py/tests') diff --git a/test/py/tests/test_fit.py b/test/py/tests/test_fit.py index a0f9350411b..34696e97679 100755 --- a/test/py/tests/test_fit.py +++ b/test/py/tests/test_fit.py @@ -143,7 +143,7 @@ def test_fit(u_boot_console): Returns: Contents of file as a string """ - with open(fname, 'r') as fd: + with open(fname, 'rb') as fd: return fd.read() def make_dtb(): -- cgit v1.3.1 From 9f9e8a4dda0b09574a9188a5576a8768e3d818be Mon Sep 17 00:00:00 2001 From: Paul Burton Date: Thu, 14 Sep 2017 14:34:49 -0700 Subject: test/py: hush_if_test: Use open() in place of file() In python 3.x the file() function has been removed. Use open() instead, which works on both python 2.x & 3.x, and is described as the preferred method of opening a file by python 2.x documentation anyway. Signed-off-by: Paul Burton Reviewed-by: Stephen Warren --- test/py/tests/test_hush_if_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/py/tests') diff --git a/test/py/tests/test_hush_if_test.py b/test/py/tests/test_hush_if_test.py index 1196e0a53ff..bba8d41d964 100644 --- a/test/py/tests/test_hush_if_test.py +++ b/test/py/tests/test_hush_if_test.py @@ -148,7 +148,7 @@ def test_hush_if_test_host_file_exists(u_boot_console): exec_hush_if(u_boot_console, expr, False) try: - with file(test_file, 'wb'): + with open(test_file, 'wb'): pass assert os.path.exists(test_file) -- cgit v1.3.1 From 8793631ec13ee9e6c7189a7bdca38dde7b4390a8 Mon Sep 17 00:00:00 2001 From: Paul Burton Date: Thu, 14 Sep 2017 14:34:50 -0700 Subject: test/py: vboot: Remove stderr redirect from openssl command The openssl command specified in test_with_algo() ultimately ends up being run by RunAndLog::run(), which uses it to construct a Popen object with the default shell=False. The stderr redirect in the command is therefore simply passed to openssl as an argument. With at least openssl 1.1.0f this causes openssl, and therefore test_vboot, to fail with: genpkey: Use -help for summary. Exit code: 1 Any stderr output ought to be captured & stored in the RunAndLog object's output field and returned from run() via run_and_log() to test_with_algo() which then ignores it anyway, so we can drop the shell-like redirection with no ill effects. With this fix test_vboot now passes for me. Signed-off-by: Paul Burton Reviewed-by: Stephen Warren --- test/py/tests/test_vboot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/py/tests') diff --git a/test/py/tests/test_vboot.py b/test/py/tests/test_vboot.py index ee939f2034e..3009529c6dc 100644 --- a/test/py/tests/test_vboot.py +++ b/test/py/tests/test_vboot.py @@ -177,8 +177,8 @@ def test_vboot(u_boot_console): public_exponent = 65537 util.run_and_log(cons, 'openssl genpkey -algorithm RSA -out %sdev.key ' '-pkeyopt rsa_keygen_bits:2048 ' - '-pkeyopt rsa_keygen_pubexp:%d ' - '2>/dev/null' % (tmpdir, public_exponent)) + '-pkeyopt rsa_keygen_pubexp:%d' % + (tmpdir, public_exponent)) # Create a certificate containing the public key util.run_and_log(cons, 'openssl req -batch -new -x509 -key %sdev.key -out ' -- cgit v1.3.1