1#!/usr/bin/env python
2# Copyright 2013 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6""" Test runner for Mojom """
7
8import subprocess
9import sys
10
11def TestMojom(testname, args):
12  print '\nRunning unit tests for %s.' % testname
13  try:
14    args = [sys.executable, testname] + args
15    subprocess.check_call(args, stdout=sys.stdout)
16    print 'Succeeded'
17    return 0
18  except subprocess.CalledProcessError as err:
19    print 'Failed with %s.' % str(err)
20    return 1
21
22
23def main(args):
24  errors = 0
25  errors += TestMojom('data_tests.py', ['--test'])
26  errors += TestMojom('module_tests.py', ['--test'])
27  errors += TestMojom('pack_tests.py', ['--test'])
28
29  if errors:
30    print '\nFailed tests.'
31  return min(errors, 127)  # Make sure the return value doesn't "wrap".
32
33
34if __name__ == '__main__':
35  sys.exit(main(sys.argv[1:]))
36