aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--authors.txt1
-rwxr-xr-xcommandrunner.py4
-rw-r--r--interpreter.py5
-rwxr-xr-xmeson_test.py10
4 files changed, 17 insertions, 3 deletions
diff --git a/authors.txt b/authors.txt
index fe479bf..315c25a 100644
--- a/authors.txt
+++ b/authors.txt
@@ -23,3 +23,4 @@ Marko Raatikainen
German Diago Gomez
Kyle Manna
Haakon Sporsheim
+Wink Saville
diff --git a/commandrunner.py b/commandrunner.py
index 1d5defb..0dad585 100755
--- a/commandrunner.py
+++ b/commandrunner.py
@@ -50,4 +50,6 @@ if __name__ == '__main__':
subdir = sys.argv[3]
command = sys.argv[4]
arguments = sys.argv[5:]
- sys.exit(run_command(src_dir, build_dir, subdir, command, arguments).returncode)
+ pc = run_command(src_dir, build_dir, subdir, command, arguments)
+ pc.wait()
+ sys.exit(pc.returncode)
diff --git a/interpreter.py b/interpreter.py
index 8cb272c..d0f23c6 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -340,6 +340,11 @@ class BuildMachine(InterpreterObject):
class CrossMachineInfo(InterpreterObject):
def __init__(self, cross_info):
InterpreterObject.__init__(self)
+ minimum_cross_info = {'cpu', 'cpu_family', 'endian', 'system'}
+ if set(cross_info) < minimum_cross_info:
+ raise InterpreterException(
+ 'Machine info is currently {}\n'.format(cross_info) +
+ 'but is missing {}.'.format(minimum_cross_info - set(cross_info)))
self.info = cross_info
self.methods.update({'system' : self.system_method,
'cpu' : self.cpu_method,
diff --git a/meson_test.py b/meson_test.py
index 9353b18..8061215 100755
--- a/meson_test.py
+++ b/meson_test.py
@@ -38,6 +38,12 @@ class TestRun():
self.stde = stde
self.cmd = cmd
+def decode(stream):
+ try:
+ return stream.decode('utf-8')
+ except UnicodeDecodeError:
+ return stream.decode('iso-8859-1', errors='ignore')
+
def write_log(logfile, test_name, result_str, result):
logfile.write(result_str + '\n\n')
logfile.write('--- command ---\n')
@@ -108,8 +114,8 @@ def run_single_test(wrap, test):
(stdo, stde) = p.communicate()
endtime = time.time()
duration = endtime - starttime
- stdo = stdo.decode()
- stde = stde.decode()
+ stdo = decode(stdo)
+ stde = decode(stde)
if timed_out:
res = 'TIMEOUT'
tests_failed = True