Index: lnt/server/db/rules/rule_update_profile_stats.py =================================================================== --- lnt/server/db/rules/rule_update_profile_stats.py +++ lnt/server/db/rules/rule_update_profile_stats.py @@ -28,7 +28,8 @@ dt = time.time() blocks = subprocess.check_output("du -s -k %s" % profile_path, - shell=True).split('\t')[0] + shell=True, + universal_newlines=True).split('\t')[0] kb = float(blocks) # 1024 byte blocks. history.append((dt, kb)) Index: lnt/testing/util/commands.py =================================================================== --- lnt/testing/util/commands.py +++ lnt/testing/util/commands.py @@ -61,7 +61,8 @@ if include_stderr: stderr = subprocess.STDOUT try: - p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=stderr) + p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=stderr, + universal_newlines=True) except OSError as e: if e.errno == errno.ENOENT: fatal('no such file or directory: %r when running %s.' % Index: lnt/tests/compile.py =================================================================== --- lnt/tests/compile.py +++ lnt/tests/compile.py @@ -83,7 +83,8 @@ stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, - cwd=cwd) + cwd=cwd, + universal_newlines=True) runn_stdout, runn_stderr = p.communicate() res = p.returncode @@ -334,13 +335,15 @@ stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - cwd=source_path) + cwd=source_path, + universal_newlines=True) else: p = subprocess.Popen(args=['unzip', '-q', archive_path], stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - cwd=source_path) + cwd=source_path, + universal_newlines=True) stdout, stderr = p.communicate() if p.wait() != 0: fatal(("unable to extract archive %r at %r\n" @@ -358,7 +361,8 @@ stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, - cwd=source_path) + cwd=source_path, + universal_newlines=True) stdout, stderr = p.communicate() if p.wait() != 0: fatal(("unable to apply patch file %r in %r\n" Index: lnt/tests/nt.py =================================================================== --- lnt/tests/nt.py +++ lnt/tests/nt.py @@ -513,7 +513,7 @@ p = subprocess.Popen(args=args, stdin=None, stdout=logfile, stderr=subprocess.STDOUT, cwd=basedir, - env=os.environ) + env=os.environ, universal_newlines=True) if report_dir is not None: while p.poll() is None: Index: lnt/tests/test_suite.py =================================================================== --- lnt/tests/test_suite.py +++ lnt/tests/test_suite.py @@ -424,7 +424,10 @@ if 'cwd' in kwargs: logger.info(' (In %s)' % kwargs['cwd']) output = subprocess.check_output(*args, **kwargs) - sys.stdout.write(output) + if kwargs.get('universal_newlines', False): + sys.stdout.write(output) + else: + sys.stdout.buffer.write(output) return output def _clean(self, path): @@ -652,7 +655,8 @@ def _extract_cmake_vars_from_cache(self): assert self.configured is True cmake_lah_output = self._check_output( - [self.opts.cmake] + ['-LAH', '-N'] + [self._base_path]) + [self.opts.cmake] + ['-LAH', '-N'] + [self._base_path], + universal_newlines=True) pattern2var = [ (re.compile("^%s:[^=]*=(.*)$" % cmakevar), cmakevar) for cmakevar in ( @@ -875,13 +879,14 @@ logger.info(' '.join(cmd_temps)) - out = subprocess.check_output(cmd_temps) + out = subprocess.check_output(cmd_temps, universal_newlines=True) logger.info(out) # Figure out our test's target. make_cmd = [self.opts.make, "VERBOSE=1", 'help'] - make_targets = subprocess.check_output(make_cmd) + make_targets = subprocess.check_output(make_cmd, + universal_newlines=True) matcher = re.compile(r"^\.\.\.\s{}$".format(short_name), re.MULTILINE | re.IGNORECASE) if not matcher.search(make_targets): @@ -894,7 +899,8 @@ logger.info(" ".join(make_deps)) p = subprocess.Popen(make_deps, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) + stderr=subprocess.STDOUT, + universal_newlines=True) std_out, std_err = p.communicate() logger.info(std_out) @@ -902,7 +908,8 @@ logger.info(" ".join(make_save_temps)) p = subprocess.Popen(make_save_temps, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) + stderr=subprocess.STDOUT, + universal_newlines=True) std_out, std_err = p.communicate() logger.info(std_out) with open(report_path + "/build.log", 'w') as f: @@ -926,13 +933,14 @@ logger.info(' '.join(cmd_time_report)) - out = subprocess.check_output(cmd_time_report) + out = subprocess.check_output(cmd_time_report, universal_newlines=True) logger.info(out) make_time_report = [self.opts.make, "VERBOSE=1", short_name] p = subprocess.Popen(make_time_report, stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.PIPE, + universal_newlines=True) std_out, std_err = p.communicate() with open(report_path + "/time-report.txt", 'w') as f: @@ -944,13 +952,15 @@ logger.info(' '.join(cmd_stats_report)) - out = subprocess.check_output(cmd_stats_report) + out = subprocess.check_output(cmd_stats_report, + universal_newlines=True) logger.info(out) make_stats_report = [self.opts.make, "VERBOSE=1", short_name] p = subprocess.Popen(make_stats_report, stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.PIPE, + universal_newlines=True) std_out, std_err = p.communicate() with open(report_path + "/stats-report.txt", 'w') as f: @@ -974,19 +984,20 @@ cmd_iprofiler = cmd + ['-DTEST_SUITE_RUN_UNDER=' + iprofiler] print(' '.join(cmd_iprofiler)) - out = subprocess.check_output(cmd_iprofiler) + subprocess.check_output(cmd_iprofiler, universal_newlines=True) os.chdir(local_path) make_iprofiler_temps = [self.opts.make, "VERBOSE=1", short_name] p = subprocess.Popen(make_iprofiler_temps, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - std_out, std_err = p.communicate() + p.communicate() logger.warning("Using sudo to collect execution trace.") make_save_temps = sudo + [self.opts.lit, short_name + ".test"] p = subprocess.Popen(make_save_temps, stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stderr=subprocess.PIPE, + universal_newlines=True) std_out, std_err = p.communicate() sys.stdout.write(std_out) sys.stderr.write(std_err)