diff options
-rw-r--r-- | authors.txt | 1 | ||||
-rwxr-xr-x | commandrunner.py | 4 | ||||
-rw-r--r-- | interpreter.py | 5 | ||||
-rwxr-xr-x | meson_test.py | 10 |
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 |