Commit 336b8051 authored by Mathieu Giraud's avatar Mathieu Giraud

tools/should.py: update from upstream

should@8f711a78
parent f355173e
Pipeline #51396 passed with stages
in 184 minutes and 27 seconds
...@@ -38,6 +38,7 @@ import os.path ...@@ -38,6 +38,7 @@ import os.path
from collections import defaultdict, OrderedDict from collections import defaultdict, OrderedDict
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
import datetime import datetime
import tempfile
# Make sure the output is in utf8 # Make sure the output is in utf8
sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1) sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1)
...@@ -266,7 +267,7 @@ def pre_process(cmd): ...@@ -266,7 +267,7 @@ def pre_process(cmd):
def populate_variables(var): def populate_variables(var):
''' '''
>>> populate_variables(['ab=cd', 'ef=xyz']) >>> populate_variables(['ab=cd', 'ef=xyz'])
[('$ab', 'cd'), ('$ef', 'xyz')] [('$ef', 'xyz'), ('$ab', 'cd')]
''' '''
variables = [] variables = []
...@@ -777,8 +778,10 @@ class TestSuite(): ...@@ -777,8 +778,10 @@ class TestSuite():
cmd = ' ; '.join(map(pre_process, self.cmds)) cmd = ' ; '.join(map(pre_process, self.cmds))
cmd = cmd_variables_cd(cmd) cmd = cmd_variables_cd(cmd)
f_stdout = tempfile.TemporaryFile()
f_stderr = tempfile.TemporaryFile()
p = subprocess.Popen([cmd], shell=True, p = subprocess.Popen([cmd], shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdout=f_stdout, stderr=f_stderr,
close_fds=True) close_fds=True)
try: try:
...@@ -788,9 +791,12 @@ class TestSuite(): ...@@ -788,9 +791,12 @@ class TestSuite():
self.exit_code = None self.exit_code = None
self.tests.append(ExternalTestCase('Exit code is %d' % self.expected_exit_code, SKIP, 'timeout after %s seconds' % TIMEOUT)) self.tests.append(ExternalTestCase('Exit code is %d' % self.expected_exit_code, SKIP, 'timeout after %s seconds' % TIMEOUT))
self.stdout = [l.decode(errors='replace') for l in p.stdout.readlines()] f_stdout.seek(0)
self.stderr = [l.decode(errors='replace') for l in p.stderr.readlines()] f_stderr.seek(0)
self.stdout = [l.decode(errors='replace') for l in f_stdout.readlines()]
self.stderr = [l.decode(errors='replace') for l in f_stderr.readlines()]
f_stdout.close()
f_stderr.close()
if verbose > 0: if verbose > 0:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment