def run_b2g_test(self, context, tests=None, suite='mochitest', **kwargs): """Runs a b2g mochitest.""" if kwargs.get('desktop'): kwargs['profile'] = kwargs.get('profile') or os.environ.get( 'GAIA_PROFILE') if not kwargs['profile'] or not os.path.isdir(kwargs['profile']): print(GAIA_PROFILE_NOT_FOUND) sys.exit(1) if os.path.isfile( os.path.join(kwargs['profile'], 'extensions', '*****@*****.**')): print(GAIA_PROFILE_IS_DEBUG.format(kwargs['profile'])) sys.exit(1) elif context.target_out: host_webapps_dir = os.path.join(context.target_out, 'data', 'local', 'webapps') if not os.path.isdir( os.path.join(host_webapps_dir, 'test-container.gaiamobile.org')): print(ENG_BUILD_REQUIRED.format(host_webapps_dir)) sys.exit(1) # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter('ignore') import imp path = os.path.join(self.mochitest_dir, 'runtestsb2g.py') with open(path, 'r') as fh: imp.load_module('mochitest', fh, path, ('.py', 'r', imp.PY_SOURCE)) import mochitest options = Namespace(**kwargs) from manifestparser import TestManifest if tests: manifest = TestManifest() manifest.tests.extend(tests) options.manifestFile = manifest if options.desktop: return mochitest.run_desktop_mochitests(options) try: which.which('adb') except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND.format(options.b2gPath)) return 1 return mochitest.run_remote_mochitests(options)
def run_b2g_test(self, context, tests=None, suite='mochitest', **kwargs): """Runs a b2g mochitest.""" if kwargs.get('desktop'): kwargs['profile'] = kwargs.get('profile') or os.environ.get('GAIA_PROFILE') if not kwargs['profile'] or not os.path.isdir(kwargs['profile']): print(GAIA_PROFILE_NOT_FOUND) sys.exit(1) if os.path.isfile(os.path.join(kwargs['profile'], 'extensions', '*****@*****.**')): print(GAIA_PROFILE_IS_DEBUG.format(kwargs['profile'])) sys.exit(1) elif context.target_out: host_webapps_dir = os.path.join(context.target_out, 'data', 'local', 'webapps') if not os.path.isdir(os.path.join( host_webapps_dir, 'test-container.gaiamobile.org')): print(ENG_BUILD_REQUIRED.format(host_webapps_dir)) sys.exit(1) # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter('ignore') import imp path = os.path.join(self.mochitest_dir, 'runtestsb2g.py') with open(path, 'r') as fh: imp.load_module('mochitest', fh, path, ('.py', 'r', imp.PY_SOURCE)) import mochitest options = Namespace(**kwargs) from manifestparser import TestManifest if tests: manifest = TestManifest() manifest.tests.extend(tests) options.manifestFile = manifest if options.desktop: return mochitest.run_desktop_mochitests(options) try: which.which('adb') except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND.format(options.b2gPath)) return 1 return mochitest.run_remote_mochitests(options)
def run_b2g_test(self, test_paths=None, b2g_home=None, xre_path=None, total_chunks=None, this_chunk=None, no_window=None, **kwargs): """Runs a b2g mochitest. test_paths is an enumerable of paths to tests. It can be a relative path from the top source directory, an absolute filename, or a directory containing test files. """ # Need to call relpath before os.chdir() below. test_path = '' if test_paths: if len(test_paths) > 1: print('Warning: Only the first test path will be used.') test_path = self._wrap_path_argument(test_paths[0]).relpath() # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter('ignore') import imp path = os.path.join(self.mochitest_dir, 'runtestsb2g.py') with open(path, 'r') as fh: imp.load_module('mochitest', fh, path, ('.py', 'r', imp.PY_SOURCE)) import mochitest from mochitest_options import B2GOptions parser = B2GOptions() options = parser.parse_args([])[0] test_path_dir = False if test_path: test_root_file = mozpack.path.join(self.mochitest_dir, 'tests', test_path) if not os.path.exists(test_root_file): print('Specified test path does not exist: %s' % test_root_file) return 1 if os.path.isdir(test_root_file): test_path_dir = True options.testPath = test_path for k, v in kwargs.iteritems(): setattr(options, k, v) options.noWindow = no_window options.totalChunks = total_chunks options.thisChunk = this_chunk options.symbolsPath = os.path.join(self.distdir, 'crashreporter-symbols') options.consoleLevel = 'INFO' if conditions.is_b2g_desktop(self): options.profile = options.profile or os.environ.get('GAIA_PROFILE') if not options.profile: print(GAIA_PROFILE_NOT_FOUND % 'mochitest-b2g-desktop') return 1 if os.path.isfile(os.path.join(options.profile, 'extensions', \ '*****@*****.**')): print(GAIA_PROFILE_IS_DEBUG % ('mochitest-b2g-desktop', options.profile)) return 1 options.desktop = True options.app = self.get_binary_path() if not options.app.endswith('-bin'): options.app = '%s-bin' % options.app if not os.path.isfile(options.app): options.app = options.app[:-len('-bin')] return mochitest.run_desktop_mochitests(parser, options) try: which.which('adb') except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND % ('mochitest-remote', b2g_home)) return 1 options.b2gPath = b2g_home options.logcat_dir = self.mochitest_dir options.httpdPath = self.mochitest_dir options.xrePath = xre_path return mochitest.run_remote_mochitests(parser, options)
def run_b2g_test(self, test_file=None, b2g_home=None, xre_path=None, **kwargs): """Runs a b2g mochitest. test_file is a path to a test file. It can be a relative path from the top source directory, an absolute filename, or a directory containing test files. """ # Need to call relpath before os.chdir() below. test_path = '' if test_file: test_path = self._wrap_path_argument(test_file).relpath() # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter('ignore') import imp path = os.path.join(self.mochitest_dir, 'runtestsb2g.py') with open(path, 'r') as fh: imp.load_module('mochitest', fh, path, ('.py', 'r', imp.PY_SOURCE)) import mochitest from mochitest_options import B2GOptions parser = B2GOptions() options = parser.parse_args([])[0] if test_path: test_root_file = mozpack.path.join(self.mochitest_dir, 'tests', test_path) if not os.path.exists(test_root_file): print('Specified test path does not exist: %s' % test_root_file) return 1 options.testPath = test_path else: options.testManifest = 'b2g.json' for k, v in kwargs.iteritems(): setattr(options, k, v) options.consoleLevel = 'INFO' if conditions.is_b2g_desktop(self): if self.substs.get('ENABLE_MARIONETTE') != '1': print(MARIONETTE_DISABLED % ('mochitest-b2g-desktop', self.mozconfig['path'])) return 1 options.profile = options.profile or os.environ.get('GAIA_PROFILE') if not options.profile: print(GAIA_PROFILE_NOT_FOUND % 'mochitest-b2g-desktop') return 1 if os.path.isfile(os.path.join(options.profile, 'extensions', \ '*****@*****.**')): print(GAIA_PROFILE_IS_DEBUG % ('mochitest-b2g-desktop', options.profile)) return 1 options.desktop = True options.app = self.get_binary_path() if not options.app.endswith('-bin'): options.app = '%s-bin' % options.app if not os.path.isfile(options.app): options.app = options.app[:-len('-bin')] return mochitest.run_desktop_mochitests(parser, options) try: which.which('adb') except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND % ('mochitest-remote', b2g_home)) return 1 options.b2gPath = b2g_home options.logcat_dir = self.mochitest_dir options.httpdPath = self.mochitest_dir options.xrePath = xre_path return mochitest.run_remote_mochitests(parser, options)
def run_b2g_test(self, test_paths=None, b2g_home=None, xre_path=None, total_chunks=None, this_chunk=None, no_window=None, **kwargs): """Runs a b2g mochitest. test_paths is an enumerable of paths to tests. It can be a relative path from the top source directory, an absolute filename, or a directory containing test files. """ # Need to call relpath before os.chdir() below. test_path = '' if test_paths: if len(test_paths) > 1: print('Warning: Only the first test path will be used.') test_path = self._wrap_path_argument(test_paths[0]).relpath() # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter('ignore') import imp path = os.path.join(self.mochitest_dir, 'runtestsb2g.py') with open(path, 'r') as fh: imp.load_module('mochitest', fh, path, ('.py', 'r', imp.PY_SOURCE)) import mochitest from mochitest_options import B2GOptions parser = B2GOptions() options = parser.parse_args([])[0] test_path_dir = False; if test_path: test_root_file = mozpack.path.join(self.mochitest_dir, 'tests', test_path) if not os.path.exists(test_root_file): print('Specified test path does not exist: %s' % test_root_file) return 1 if os.path.isdir(test_root_file): test_path_dir = True; options.testPath = test_path for k, v in kwargs.iteritems(): setattr(options, k, v) options.noWindow = no_window options.totalChunks = total_chunks options.thisChunk = this_chunk options.symbolsPath = os.path.join(self.distdir, 'crashreporter-symbols') options.consoleLevel = 'INFO' if conditions.is_b2g_desktop(self): options.profile = options.profile or os.environ.get('GAIA_PROFILE') if not options.profile: print(GAIA_PROFILE_NOT_FOUND % 'mochitest-b2g-desktop') return 1 if os.path.isfile(os.path.join(options.profile, 'extensions', \ '*****@*****.**')): print(GAIA_PROFILE_IS_DEBUG % ('mochitest-b2g-desktop', options.profile)) return 1 options.desktop = True options.app = self.get_binary_path() if not options.app.endswith('-bin'): options.app = '%s-bin' % options.app if not os.path.isfile(options.app): options.app = options.app[:-len('-bin')] return mochitest.run_desktop_mochitests(parser, options) try: which.which('adb') except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND % ('mochitest-remote', b2g_home)) return 1 options.b2gPath = b2g_home options.logcat_dir = self.mochitest_dir options.httpdPath = self.mochitest_dir options.xrePath = xre_path return mochitest.run_remote_mochitests(parser, options)
def run_b2g_test( self, test_file=None, b2g_home=None, xre_path=None, total_chunks=None, this_chunk=None, no_window=None, **kwargs ): """Runs a b2g mochitest. test_file is a path to a test file. It can be a relative path from the top source directory, an absolute filename, or a directory containing test files. """ # Need to call relpath before os.chdir() below. test_path = "" if test_file: test_path = self._wrap_path_argument(test_file).relpath() # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter("ignore") import imp path = os.path.join(self.mochitest_dir, "runtestsb2g.py") with open(path, "r") as fh: imp.load_module("mochitest", fh, path, (".py", "r", imp.PY_SOURCE)) import mochitest from mochitest_options import B2GOptions parser = B2GOptions() options = parser.parse_args([])[0] if test_path: test_root_file = mozpack.path.join(self.mochitest_dir, "tests", test_path) if not os.path.exists(test_root_file): print("Specified test path does not exist: %s" % test_root_file) return 1 options.testPath = test_path elif conditions.is_b2g_desktop(self): options.testManifest = "b2g-desktop.json" else: options.testManifest = "b2g.json" for k, v in kwargs.iteritems(): setattr(options, k, v) options.noWindow = no_window options.totalChunks = total_chunks options.thisChunk = this_chunk options.symbolsPath = os.path.join(self.distdir, "crashreporter-symbols") options.consoleLevel = "INFO" if conditions.is_b2g_desktop(self): if self.substs.get("ENABLE_MARIONETTE") != "1": print(MARIONETTE_DISABLED % ("mochitest-b2g-desktop", self.mozconfig["path"])) return 1 options.profile = options.profile or os.environ.get("GAIA_PROFILE") if not options.profile: print(GAIA_PROFILE_NOT_FOUND % "mochitest-b2g-desktop") return 1 if os.path.isfile(os.path.join(options.profile, "extensions", "*****@*****.**")): print(GAIA_PROFILE_IS_DEBUG % ("mochitest-b2g-desktop", options.profile)) return 1 options.desktop = True options.app = self.get_binary_path() if not options.app.endswith("-bin"): options.app = "%s-bin" % options.app if not os.path.isfile(options.app): options.app = options.app[: -len("-bin")] return mochitest.run_desktop_mochitests(parser, options) try: which.which("adb") except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND % ("mochitest-remote", b2g_home)) return 1 options.b2gPath = b2g_home options.logcat_dir = self.mochitest_dir options.httpdPath = self.mochitest_dir options.xrePath = xre_path return mochitest.run_remote_mochitests(parser, options)
def run_b2g_test(self, test_paths=None, **kwargs): """Runs a b2g mochitest. test_paths is an enumerable of paths to tests. It can be a relative path from the top source directory, an absolute filename, or a directory containing test files. """ # Need to call relpath before os.chdir() below. test_path = '' if test_paths: if len(test_paths) > 1: print('Warning: Only the first test path will be used.') test_path = self._wrap_path_argument(test_paths[0]).relpath() # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter('ignore') import imp path = os.path.join(self.mochitest_dir, 'runtestsb2g.py') with open(path, 'r') as fh: imp.load_module('mochitest', fh, path, ('.py', 'r', imp.PY_SOURCE)) import mochitest options = Namespace(**kwargs) if test_path: if options.chrome: test_root_file = mozpath.join( self.mochitest_dir, 'chrome', test_path) else: test_root_file = mozpath.join( self.mochitest_dir, 'tests', test_path) if not os.path.exists(test_root_file): print( 'Specified test path does not exist: %s' % test_root_file) return 1 options.testPath = test_path if options.desktop: return mochitest.run_desktop_mochitests(options) try: which.which('adb') except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND % ('mochitest-remote', options.b2gPath)) return 1 return mochitest.run_remote_mochitests(options)
def run_b2g_test( self, test_paths=None, b2g_home=None, xre_path=None, total_chunks=None, this_chunk=None, no_window=None, repeat=0, run_until_failure=False, **kwargs ): """Runs a b2g mochitest. test_paths is an enumerable of paths to tests. It can be a relative path from the top source directory, an absolute filename, or a directory containing test files. """ # Need to call relpath before os.chdir() below. test_path = "" if test_paths: if len(test_paths) > 1: print("Warning: Only the first test path will be used.") test_path = self._wrap_path_argument(test_paths[0]).relpath() # TODO without os.chdir, chained imports fail below os.chdir(self.mochitest_dir) # The imp module can spew warnings if the modules below have # already been imported, ignore them. with warnings.catch_warnings(): warnings.simplefilter("ignore") import imp path = os.path.join(self.mochitest_dir, "runtestsb2g.py") with open(path, "r") as fh: imp.load_module("mochitest", fh, path, (".py", "r", imp.PY_SOURCE)) import mochitest from mochitest_options import B2GOptions parser = B2GOptions() options = parser.parse_args([])[0] if test_path: test_root_file = mozpack.path.join(self.mochitest_dir, "tests", test_path) if not os.path.exists(test_root_file): print("Specified test path does not exist: %s" % test_root_file) return 1 options.testPath = test_path for k, v in kwargs.iteritems(): setattr(options, k, v) options.noWindow = no_window options.totalChunks = total_chunks options.thisChunk = this_chunk options.repeat = repeat options.runUntilFailure = run_until_failure options.symbolsPath = os.path.join(self.distdir, "crashreporter-symbols") options.consoleLevel = "INFO" if conditions.is_b2g_desktop(self): options.desktop = True options.app = self.get_binary_path() if not options.app.endswith("-bin"): options.app = "%s-bin" % options.app if not os.path.isfile(options.app): options.app = options.app[: -len("-bin")] return mochitest.run_desktop_mochitests(parser, options) try: which.which("adb") except which.WhichError: # TODO Find adb automatically if it isn't on the path print(ADB_NOT_FOUND % ("mochitest-remote", b2g_home)) return 1 options.b2gPath = b2g_home options.logdir = self.mochitest_dir options.httpdPath = self.mochitest_dir options.xrePath = xre_path return mochitest.run_remote_mochitests(parser, options)