☠☠ backed out by 61190fb11108 ☠ ☠ | |
author | Andrew Halberstadt <ahalberstadt@mozilla.com> |
Wed, 06 Dec 2017 17:29:23 -0500 | |
changeset 396441 | 629e467a07bec71ca26c95d2f012293576793e0e |
parent 396440 | 2de335c0287aa5c8c957ba6f4083bdcfdc56db33 |
child 396442 | 7fb20bced07629eb683f79951f325ff07c07c8dc |
push id | 98313 |
push user | nbeleuzu@mozilla.com |
push date | Fri, 15 Dec 2017 01:48:15 +0000 |
treeherder | mozilla-inbound@cebcea19cfb0 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | gbrown |
bugs | 1421799 |
milestone | 59.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
testing/mach_commands.py | file | annotate | diff | comparison | revisions | |
testing/mochitest/mach_commands.py | file | annotate | diff | comparison | revisions |
--- a/testing/mach_commands.py +++ b/testing/mach_commands.py @@ -64,26 +64,34 @@ class TestConfig(object): level_desc = "The default log level to use when running tests with `mach test`." level_choices = [l.lower() for l in log_levels] return [ ('test.format', 'string', format_desc, 'tbpl', {'choices': format_choices}), ('test.level', 'string', level_desc, 'info', {'choices': level_choices}), ] +def get_test_parser(): + from mozlog.commandline import add_logging_group + parser = argparse.ArgumentParser() + parser.add_argument('what', default=None, nargs='*', help=TEST_HELP) + parser.add_argument('extra_args', default=None, nargs=argparse.REMAINDER, + help="Extra arguments to pass to the underlying test command(s). " + "If an underlying command doesn't recognize the argument, it " + "will fail.") + add_logging_group(parser) + return parser + + @CommandProvider class Test(MachCommandBase): @Command('test', category='testing', - description='Run tests (detects the kind of test and runs it).') - @CommandArgument('what', default=None, nargs='*', help=TEST_HELP) - @CommandArgument('extra_args', default=None, nargs=argparse.REMAINDER, - help="Extra arguments to pass to the underlying test command(s). " - "If an underlying command doesn't recognize the argument, it " - "will fail.") - def test(self, what, extra_args): + description='Run tests (detects the kind of test and runs it).', + parser=get_test_parser) + def test(self, what, extra_args, **log_args): """Run tests from names or paths. mach test accepts arguments specifying which tests to run. Each argument can be: * The path to a test file * A directory containing tests * A test suite name @@ -97,35 +105,32 @@ class Test(MachCommandBase): When paths or directories are given, they are first resolved to test files known to the build system. If resolved tests belong to more than one test type/flavor/harness, the harness for each relevant type/flavor will be invoked. e.g. if you specify a directory with xpcshell and browser chrome mochitests, both harnesses will be invoked. """ - from mozlog.commandline import log_formatters - from mozlog.handlers import StreamHandler, LogLevelFilter - from mozlog.structuredlog import StructuredLogger + from mozlog.commandline import setup_logging from moztest.resolve import TestResolver, TEST_FLAVORS, TEST_SUITES resolver = self._spawn(TestResolver) run_suites, run_tests = resolver.resolve_metadata(what) if not run_suites and not run_tests: print(UNKNOWN_TEST) return 1 # Create shared logger - formatter = log_formatters[self._mach_context.settings['test']['format']][0]() - formatter.summary_on_shutdown = True - - level = self._mach_context.settings['test']['level'] - log = StructuredLogger('mach-test') - log.add_handler(StreamHandler(sys.stdout, LogLevelFilter(formatter, level))) + default_format = self._mach_context.settings['test']['format'] + default_level = self._mach_context.settings['test']['level'] + log = setup_logging('mach-test', log_args, {default_format: sys.stdout}, + {'level': default_level}) + log.handlers[0].formatter.inner.summary_on_shutdown = True status = None for suite_name in run_suites: suite = TEST_SUITES[suite_name] kwargs = suite['kwargs'] kwargs['log'] = log if 'mach_command' in suite:
--- a/testing/mochitest/mach_commands.py +++ b/testing/mochitest/mach_commands.py @@ -274,19 +274,17 @@ def verify_host_bin(): @CommandProvider class MachCommands(MachCommandBase): @Command('mochitest', category='testing', conditions=[is_buildapp_in(*SUPPORTED_APPS)], description='Run any flavor of mochitest (integration test).', parser=setup_argument_parser) def run_mochitest_general(self, flavor=None, test_objects=None, resolve_tests=True, **kwargs): from mochitest_options import ALL_FLAVORS - from mozlog.commandline import log_formatters - from mozlog.handlers import StreamHandler, LogLevelFilter - from mozlog.structuredlog import StructuredLogger + from mozlog.commandline import setup_logging buildapp = None for app in SUPPORTED_APPS: if is_buildapp_in(app)(self): buildapp = app break flavors = None @@ -297,22 +295,21 @@ class MachCommands(MachCommandBase): continue flavors = [fname] break else: flavors = [f for f, v in ALL_FLAVORS.iteritems() if buildapp in v['enabled_apps']] if not kwargs.get('log'): # Create shared logger - formatter = log_formatters[self._mach_context.settings['test']['format']][0]() - formatter.summary_on_shutdown = True - - level = self._mach_context.settings['test']['level'] - kwargs['log'] = StructuredLogger('mach-mochitest') - kwargs['log'].add_handler(StreamHandler(sys.stdout, LogLevelFilter(formatter, level))) + default_format = self._mach_context.settings['test']['format'] + default_level = self._mach_context.settings['test']['level'] + kwargs['log'] = setup_logging('mach-mochitest', kwargs, {default_format: sys.stdout}, + {'level': default_level}) + kwargs['log'].handlers[0].formatter.inner.summary_on_shutdown = True from mozbuild.controller.building import BuildDriver self._ensure_state_subdir_exists('.') test_paths = kwargs['test_paths'] kwargs['test_paths'] = [] mochitest = self._spawn(MochitestRunner)