diff options
author | Krzysztof Gogolewski <krz.gogolewski@gmail.com> | 2018-08-06 21:38:52 +0200 |
---|---|---|
committer | Krzysztof Gogolewski <krz.gogolewski@gmail.com> | 2018-08-06 21:38:52 +0200 |
commit | 36a4c19494e2cb7e968f1d0e0c09926a660e1a56 (patch) | |
tree | df0f11449f983fb00c65b816046fb3092d19ef32 | |
parent | 29dfb63624442a27119c1a218fc3dae71afb16de (diff) | |
download | haskell-36a4c19494e2cb7e968f1d0e0c09926a660e1a56.tar.gz |
Testsuite driver: fix encoding issue when calling ghc-pkg
Summary:
In Python 3, subprocess.communicate() returns a pair of bytes, which
need to be decoded. In runtests.py, we were just calling str() instead,
which converts b'x' to "b'x'". As a result, the loop that was checking
pkginfo for lines starting with 'library-dirs' couldn't work.
Reviewers: bgamari, thomie, Phyx
Reviewed By: thomie
Subscribers: Phyx, rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5046
-rw-r--r-- | testsuite/config/ghc | 4 | ||||
-rw-r--r-- | testsuite/driver/runtests.py | 2 | ||||
-rw-r--r-- | testsuite/driver/testutil.py | 5 |
3 files changed, 5 insertions, 6 deletions
diff --git a/testsuite/config/ghc b/testsuite/config/ghc index a850be90d4..6777a59473 100644 --- a/testsuite/config/ghc +++ b/testsuite/config/ghc @@ -158,10 +158,10 @@ llvm_ways = [x[0] for x in config.way_flags.items() if '-fflvm' in x[1]] def get_compiler_info(): - s = getStdout([config.compiler, '--info']).decode('utf8') + s = getStdout([config.compiler, '--info']) s = re.sub('[\r\n]', '', s) compilerInfoDict = dict(eval(s)) - s = getStdout([config.compiler, '+RTS', '--info']).decode('utf8') + s = getStdout([config.compiler, '+RTS', '--info']) s = re.sub('[\r\n]', '', s) rtsInfoDict = dict(eval(s)) diff --git a/testsuite/driver/runtests.py b/testsuite/driver/runtests.py index c6470c542a..e01f67c358 100644 --- a/testsuite/driver/runtests.py +++ b/testsuite/driver/runtests.py @@ -189,7 +189,7 @@ def format_path(path): # On Windows we need to set $PATH to include the paths to all the DLLs # in order for the dynamic library tests to work. if windows or darwin: - pkginfo = str(getStdout([config.ghc_pkg, 'dump'])) + pkginfo = getStdout([config.ghc_pkg, 'dump']) topdir = config.libdir if windows: mingw = os.path.abspath(os.path.join(topdir, '../mingw/bin')) diff --git a/testsuite/driver/testutil.py b/testsuite/driver/testutil.py index 104bbffab4..15587e6960 100644 --- a/testsuite/driver/testutil.py +++ b/testsuite/driver/testutil.py @@ -10,8 +10,7 @@ def strip_quotes(s): return s.strip('\'"') def getStdout(cmd_and_args): - # Can't use subprocess.check_output as it's not available in Python 2.6; - # It's also not quite the same as check_output, since we also verify that + # Can't use subprocess.check_output, since we also verify that # no stderr was produced p = subprocess.Popen([strip_quotes(cmd_and_args[0])] + cmd_and_args[1:], stdout=subprocess.PIPE, @@ -22,7 +21,7 @@ def getStdout(cmd_and_args): raise Exception("Command failed: " + str(cmd_and_args)) if stderr: raise Exception("stderr from command: %s\nOutput:\n%s\n" % (cmd_and_args, stderr)) - return stdout + return stdout.decode('utf-8') def lndir(srcdir, dstdir): # Create symlinks for all files in src directory. |