gecko-dev/mach
Gregory Szorc 3dd8150678 Bug 799291 - Part 1: Move mach commands for test running into test runners; r=jhammel
The code interacting with the test runners now resides in closer
proximity to the code it is invoking. We also purge testing
functionality from mozbuild, which is where it never really belonged.

--HG--
rename : python/mozbuild/mozbuild/testing/reftest.py => layout/tools/reftest/mach_commands.py
rename : python/mozbuild/mozbuild/testing/mochitest.py => testing/mochitest/mach_commands.py
rename : python/mozbuild/mozbuild/testing/xpcshell.py => testing/xpcshell/mach_commands.py
2012-10-10 11:08:09 -07:00

60 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import print_function, unicode_literals
import os
import platform
import sys
# Ensure we are running Python 2.7+. We put this check here so we generate a
# user-friendly error message rather than a cryptic stack trace on module
# import.
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
print('Python 2.7 or above is required to run mach.')
print('You are running', platform.python_version())
sys.exit(1)
# TODO Bug 794506 Integrate with the in-tree virtualenv configuration.
SEARCH_PATHS = [
'python/mach',
'python/mozbuild',
'build',
'build/pymake',
'python/blessings',
'python/psutil',
'python/which',
'other-licenses/ply',
'xpcom/idl-parser',
'testing/xpcshell',
'testing/mozbase/mozprocess',
'testing/mozbase/mozinfo',
]
# Individual files providing mach commands.
MACH_MODULES = [
'layout/tools/reftest/mach_commands.py',
'testing/mochitest/mach_commands.py',
'testing/xpcshell/mach_commands.py',
]
our_dir = os.path.dirname(os.path.abspath(__file__))
try:
import mach.main
except ImportError:
sys.path[0:0] = [os.path.join(our_dir, path) for path in SEARCH_PATHS]
import mach.main
# All of the code is in a module because EVERYTHING IS A LIBRARY.
mach = mach.main.Mach(our_dir)
mach.load_commands_from_sys_path()
for path in MACH_MODULES:
mach.load_commands_from_file(os.path.join(our_dir, path))
sys.exit(mach.run(sys.argv[1:]))