def _prepare_config(self, options, args, tool): results_directory = args[0] filesystem = system.filesystem.FileSystem() scm = self._tool.scm() print 'Parsing full_results.json...' results_json_path = filesystem.join(results_directory, 'full_results.json') results_json = json_results_generator.load_json(filesystem, results_json_path) port = tool.port_factory.get() layout_tests_directory = port.layout_tests_dir() platforms = filesystem.listdir(filesystem.join(layout_tests_directory, 'platform')) self._test_config = TestConfig(port, layout_tests_directory, results_directory, platforms, filesystem, scm) print 'Gathering current baselines...' self._gather_baselines(results_json) return { 'test_config': self._test_config, "results_json": results_json, "platforms_json": { 'platforms': platforms, 'defaultPlatform': port.name(), }, }
def _prepare_config(self, options, args, tool): results_directory = args[0] host = Host() host.initialize_scm() print 'Parsing full_results.json...' results_json_path = host.filesystem.join(results_directory, 'full_results.json') results_json = json_results_generator.load_json(host.filesystem, results_json_path) port = tool.port_factory.get() layout_tests_directory = port.layout_tests_dir() platforms = host.filesystem.listdir(host.filesystem.join(layout_tests_directory, 'platform')) self._test_config = TestConfig(port, layout_tests_directory, results_directory, platforms, host) print 'Gathering current baselines...' self._gather_baselines(results_json) return { 'test_config': self._test_config, "results_json": results_json, "platforms_json": { 'platforms': platforms, 'defaultPlatform': port.name(), }, }
def execute(self, options, args, tool): results_directory = args[0] filesystem = system.filesystem.FileSystem() scm = self._tool.scm() if options.dry_run: def no_op_copyfile(src, dest): pass def no_op_add(path, return_exit_code=False): if return_exit_code: return 0 filesystem.copyfile = no_op_copyfile scm.add = no_op_add print 'Parsing unexpected_results.json...' results_json_path = filesystem.join(results_directory, 'unexpected_results.json') results_json = json_results_generator.load_json(filesystem, results_json_path) port = factory.get() layout_tests_directory = port.layout_tests_dir() platforms = filesystem.listdir( filesystem.join(layout_tests_directory, 'platform')) test_config = TestConfig( port, layout_tests_directory, results_directory, platforms, filesystem, scm) print 'Gathering current baselines...' for test_file, test_json in results_json['tests'].items(): test_json['state'] = STATE_NEEDS_REBASELINE test_path = filesystem.join(layout_tests_directory, test_file) test_json['baselines'] = _get_test_baselines(test_file, test_config) server_url = "http://localhost:%d/" % options.httpd_port print "Starting server at %s" % server_url print ("Use the 'Exit' link in the UI, %squitquitquit " "or Ctrl-C to stop") % server_url threading.Timer( .1, lambda: self._tool.user.open_url(server_url)).start() httpd = RebaselineHTTPServer( httpd_port=options.httpd_port, test_config=test_config, results_json=results_json, platforms_json={ 'platforms': platforms, 'defaultPlatform': port.name(), }) httpd.serve_forever()
def execute(self, options, args, tool): results_directory = args[0] filesystem = system.filesystem.FileSystem() scm = self._tool.scm() if options.dry_run: def no_op_copyfile(src, dest): pass def no_op_add(path, return_exit_code=False): if return_exit_code: return 0 filesystem.copyfile = no_op_copyfile scm.add = no_op_add print 'Parsing unexpected_results.json...' results_json_path = filesystem.join(results_directory, 'unexpected_results.json') results_json = json_results_generator.load_json( filesystem, results_json_path) port = factory.get() layout_tests_directory = port.layout_tests_dir() platforms = filesystem.listdir( filesystem.join(layout_tests_directory, 'platform')) test_config = TestConfig(port, layout_tests_directory, results_directory, platforms, filesystem, scm) print 'Gathering current baselines...' for test_file, test_json in results_json['tests'].items(): test_json['state'] = STATE_NEEDS_REBASELINE test_path = filesystem.join(layout_tests_directory, test_file) test_json['baselines'] = _get_test_baselines( test_file, test_config) server_url = "http://localhost:%d/" % options.httpd_port print "Starting server at %s" % server_url print( "Use the 'Exit' link in the UI, %squitquitquit " "or Ctrl-C to stop") % server_url threading.Timer(.1, lambda: self._tool.user.open_url(server_url)).start() httpd = RebaselineHTTPServer(httpd_port=options.httpd_port, test_config=test_config, results_json=results_json, platforms_json={ 'platforms': platforms, 'defaultPlatform': port.name(), }) httpd.serve_forever()
def _gather_unexpected_results(port): """Returns the unexpected results from the previous run, if any.""" filesystem = port._filesystem results_directory = port.results_directory() options = port._options last_unexpected_results = [] if options.print_last_failures or options.retest_last_failures: unexpected_results_filename = filesystem.join(results_directory, "unexpected_results.json") if filesystem.exists(unexpected_results_filename): results = json_results_generator.load_json(filesystem, unexpected_results_filename) resultsjsonparser.for_each_test(results['tests'], lambda test, result: last_unexpected_results.append(test)) return last_unexpected_results
def _prepare_config(self, options, args, tool): results_directory = args[0] filesystem = system.filesystem.FileSystem() scm = self._tool.scm() print "Parsing full_results.json..." results_json_path = filesystem.join(results_directory, "full_results.json") results_json = json_results_generator.load_json(filesystem, results_json_path) port = tool.port_factory.get() layout_tests_directory = port.layout_tests_dir() platforms = filesystem.listdir(filesystem.join(layout_tests_directory, "platform")) self._test_config = TestConfig(port, layout_tests_directory, results_directory, platforms, filesystem, scm) print "Gathering current baselines..." self._gather_baselines(results_json) return { "test_config": self._test_config, "results_json": results_json, "platforms_json": {"platforms": platforms, "defaultPlatform": port.name()}, }
def execute(self, options, args, tool): results_directory = args[0] filesystem = system.filesystem.FileSystem() scm = self._tool.scm() if options.dry_run: def no_op_copyfile(src, dest): pass def no_op_add(path, return_exit_code=False): if return_exit_code: return 0 filesystem.copyfile = no_op_copyfile scm.add = no_op_add print 'Parsing unexpected_results.json...' results_json_path = filesystem.join(results_directory, 'unexpected_results.json') results_json = json_results_generator.load_json(filesystem, results_json_path) port = factory.get() layout_tests_directory = port.layout_tests_dir() platforms = filesystem.listdir( filesystem.join(layout_tests_directory, 'platform')) test_config = TestConfig( port, layout_tests_directory, results_directory, platforms, filesystem, scm) print 'Gathering current baselines...' # Rebaseline server and it's associated JavaScript expected the tests subtree to # be key-value pairs instead of hierarchical. # FIXME: make the rebaseline server use the hierarchical tree. new_tests_subtree = {} def gather_baselines(test, result): result['state'] = STATE_NEEDS_REBASELINE result['baselines'] = _get_test_baselines(test, test_config) new_tests_subtree[test] = result resultsjsonparser.for_each_test(results_json['tests'], gather_baselines) results_json['tests'] = new_tests_subtree server_url = "http://localhost:%d/" % options.httpd_port print "Starting server at %s" % server_url print ("Use the 'Exit' link in the UI, %squitquitquit " "or Ctrl-C to stop") % server_url threading.Timer( .1, lambda: self._tool.user.open_url(server_url)).start() httpd = RebaselineHTTPServer( httpd_port=options.httpd_port, test_config=test_config, results_json=results_json, platforms_json={ 'platforms': platforms, 'defaultPlatform': port.name(), }) httpd.serve_forever()