diff options
Diffstat (limited to 'testing/mozharness/scripts/gaia_integration.py')
-rw-r--r-- | testing/mozharness/scripts/gaia_integration.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/testing/mozharness/scripts/gaia_integration.py b/testing/mozharness/scripts/gaia_integration.py new file mode 100644 index 000000000..3edb8b964 --- /dev/null +++ b/testing/mozharness/scripts/gaia_integration.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python +# ***** BEGIN LICENSE BLOCK ***** +# 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/. +# ***** END LICENSE BLOCK ***** + +import os +import sys + +# load modules from parent dir +sys.path.insert(1, os.path.dirname(sys.path[0])) + +from mozharness.mozilla.testing.gaia_test import GaiaTest +from mozharness.mozilla.testing.unittest import TestSummaryOutputParserHelper + + +class GaiaIntegrationTest(GaiaTest): + + def __init__(self, require_config_file=False): + GaiaTest.__init__(self, require_config_file) + + def run_tests(self): + """ + Run the integration test suite. + """ + dirs = self.query_abs_dirs() + + self.node_setup() + + output_parser = TestSummaryOutputParserHelper( + config=self.config, log_obj=self.log_obj, error_list=self.error_list) + + # Bug 1046694 - add environment variables which govern test chunking + env = {} + if self.config.get('this_chunk') and self.config.get('total_chunks'): + env["PART"] = self.config.get('this_chunk') + env["NBPARTS"] = self.config.get('total_chunks') + env = self.query_env(partial_env=env) + + # Bug 1137884 - marionette-js-runner needs to know about virtualenv + gaia_runner_service = ( + dirs['abs_gaia_dir'] + + '/node_modules/marionette-js-runner/host/python/runner-service') + # Check whether python package is around since there exist versions + # of gaia that depend on versions of marionette-js-runner without + # the python stuff. + if os.path.exists(gaia_runner_service): + self.install_module('gaia-runner-service', gaia_runner_service) + env['VIRTUALENV_PATH'] = self.query_virtualenv_path() + env['HOST_LOG'] = os.path.join(dirs['abs_log_dir'], 'gecko_output.log') + + cmd = [ + 'make', + 'test-integration', + 'REPORTER=mocha-tbpl-reporter', + 'TEST_MANIFEST=./shared/test/integration/tbpl-manifest.json', + 'NODE_MODULE_SRC=npm-cache', + 'VIRTUALENV_EXISTS=1' + ] + + # for Mulet + if 'firefox' in self.binary_path: + cmd += ['RUNTIME=%s' % self.binary_path] + + code = self.run_command(cmd, cwd=dirs['abs_gaia_dir'], env=env, + output_parser=output_parser, + output_timeout=330) + + output_parser.print_summary('gaia-integration-tests') + self.publish(code, passed=output_parser.passed, failed=output_parser.failed) + +if __name__ == '__main__': + gaia_integration_test = GaiaIntegrationTest() + gaia_integration_test.run_and_exit() |