def test_default_profiler_output(self): host = MockSystemHost() self.assertFalse(host.filesystem.exists("/tmp/output")) # Default mocks are Mac, so iprofile should be default. profiler = ProfilerFactory.create_profiler(host, '/bin/executable', '/tmp/output') self.assertTrue(host.filesystem.exists("/tmp/output")) self.assertEqual(profiler._output_path, "/tmp/output/test.dtps") # Linux defaults to perf. host.platform.os_name = 'linux' profiler = ProfilerFactory.create_profiler(host, '/bin/executable', '/tmp/output') self.assertEqual(profiler._output_path, "/tmp/output/test.data")
def __init__(self, port, worker_number, pixel_tests, no_timeout=False): """Initialize a Driver to subsequently run tests. Typically this routine will spawn DumpRenderTree in a config ready for subsequent input. port - reference back to the port object. worker_number - identifier for a particular worker/driver instance """ self._port = port self._worker_number = worker_number self._no_timeout = no_timeout self._target_host = port.target_host(worker_number) self._driver_tempdir = None self._driver_user_directory_suffix = None self._driver_user_cache_directory = None # WebKitTestRunner can report back subprocess crashes by printing # "#CRASHED - PROCESSNAME". Since those can happen at any time and ServerProcess # won't be aware of them (since the actual tool didn't crash, just a subprocess) # we record the crashed subprocess name here. self._crashed_process_name = None self._crashed_pid = None self._driver_timed_out = False # stderr reading is scoped on a per-test (not per-block) basis, so we store the accumulated # stderr output, as well as if we've seen #EOF on this driver instance. # FIXME: We should probably remove _read_first_block and _read_optional_image_block and # instead scope these locally in run_test. self.error_from_test = '' self.err_seen_eof = False self._server_name = self._port.driver_name() self._server_process = None self._measurements = {} if self._port.get_option("profile"): profiler_name = self._port.get_option("profiler") self._profiler = ProfilerFactory.create_profiler( self._port.host, self._port._path_to_driver(), self._port.results_directory(), profiler_name) else: self._profiler = None self.web_platform_test_server_doc_root = self._port.web_platform_test_server_doc_root( ) self.web_platform_test_server_base_http_url = self._port.web_platform_test_server_base_http_url( ) self.web_platform_test_server_base_https_url = self._port.web_platform_test_server_base_https_url( )
def __init__(self, port, worker_number, pixel_tests, no_timeout=False): """Initialize a Driver to subsequently run tests. Typically this routine will spawn content_shell in a config ready for subsequent input. port - reference back to the port object. worker_number - identifier for a particular worker/driver instance """ self._port = port self._worker_number = worker_number self._no_timeout = no_timeout self._driver_tempdir = None # content_shell can report back subprocess crashes by printing # "#CRASHED - PROCESSNAME". Since those can happen at any time # and ServerProcess won't be aware of them (since the actual tool # didn't crash, just a subprocess) we record the crashed subprocess name here. self._crashed_process_name = None self._crashed_pid = None # content_shell can report back subprocesses that became unresponsive # This could mean they crashed. self._subprocess_was_unresponsive = False # content_shell can report back subprocess DOM-object leaks by printing # "#LEAK". This leak detection is enabled only when the flag # --enable-leak-detection is passed to content_shell. self._leaked = False # stderr reading is scoped on a per-test (not per-block) basis, so we store the accumulated # stderr output, as well as if we've seen #EOF on this driver instance. # FIXME: We should probably remove _read_first_block and _read_optional_image_block and # instead scope these locally in run_test. self.error_from_test = str() self.err_seen_eof = False self._server_process = None self._current_cmd_line = None self._measurements = {} if self._port.get_option('profile'): profiler_name = self._port.get_option('profiler') self._profiler = ProfilerFactory.create_profiler( self._port.host, self._port._path_to_driver(), # pylint: disable=protected-access self._port.results_directory(), profiler_name) else: self._profiler = None
def __init__(self, port, worker_number, pixel_tests, no_timeout=False): """Initialize a Driver to subsequently run tests. Typically this routine will spawn content_shell in a config ready for subsequent input. port - reference back to the port object. worker_number - identifier for a particular worker/driver instance """ self._port = port self._worker_number = worker_number self._no_timeout = no_timeout self._driver_tempdir = None # content_shell can report back subprocess crashes by printing # "#CRASHED - PROCESSNAME". Since those can happen at any time # and ServerProcess won't be aware of them (since the actual tool # didn't crash, just a subprocess) we record the crashed subprocess name here. self._crashed_process_name = None self._crashed_pid = None # content_shell can report back subprocesses that became unresponsive # This could mean they crashed. self._subprocess_was_unresponsive = False # content_shell can report back subprocess DOM-object leaks by printing # "#LEAK". This leak detection is enabled only when the flag # --enable-leak-detection is passed to content_shell. self._leaked = False # stderr reading is scoped on a per-test (not per-block) basis, so we store the accumulated # stderr output, as well as if we've seen #EOF on this driver instance. # FIXME: We should probably remove _read_first_block and _read_optional_image_block and # instead scope these locally in run_test. self.error_from_test = str() self.err_seen_eof = False self._server_process = None self._current_cmd_line = None self._measurements = {} if self._port.get_option("profile"): profiler_name = self._port.get_option("profiler") self._profiler = ProfilerFactory.create_profiler( self._port.host, self._port._path_to_driver(), # pylint: disable=protected-access self._port.results_directory(), profiler_name) else: self._profiler = None
def __init__(self, port, worker_number, pixel_tests, no_timeout=False): """Initialize a Driver to subsequently run tests. Typically this routine will spawn DumpRenderTree in a config ready for subsequent input. port - reference back to the port object. worker_number - identifier for a particular worker/driver instance """ self._port = port self._worker_number = worker_number self._no_timeout = no_timeout self._driver_tempdir = None self._driver_user_directory_suffix = None self._driver_user_cache_directory = None # WebKitTestRunner/LayoutTestRelay can report back subprocess crashes by printing # "#CRASHED - PROCESSNAME". Since those can happen at any time and ServerProcess # won't be aware of them (since the actual tool didn't crash, just a subprocess) # we record the crashed subprocess name here. self._crashed_process_name = None self._crashed_pid = None self._driver_timed_out = False # stderr reading is scoped on a per-test (not per-block) basis, so we store the accumulated # stderr output, as well as if we've seen #EOF on this driver instance. # FIXME: We should probably remove _read_first_block and _read_optional_image_block and # instead scope these locally in run_test. self.error_from_test = str() self.err_seen_eof = False self._server_name = self._port.driver_name() self._server_process = None self._measurements = {} if self._port.get_option("profile"): profiler_name = self._port.get_option("profiler") self._profiler = ProfilerFactory.create_profiler(self._port.host, self._port._path_to_driver(), self._port.results_directory(), profiler_name) else: self._profiler = None self.web_platform_test_server_doc_root = self._port.web_platform_test_server_doc_root() self.web_platform_test_server_base_url = self._port.web_platform_test_server_base_url()
def _assert_default_profiler_name(self, os_name, expected_profiler_name): profiler_name = ProfilerFactory.default_profiler_name( MockPlatformInfo(os_name)) self.assertEqual(profiler_name, expected_profiler_name)