1#!/usr/bin/env python 2# Copyright (C) 2010 Google Inc. All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: 7# 8# * Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# * Redistributions in binary form must reproduce the above 11# copyright notice, this list of conditions and the following disclaimer 12# in the documentation and/or other materials provided with the 13# distribution. 14# * Neither the Google name nor the names of its 15# contributors may be used to endorse or promote products derived from 16# this software without specific prior written permission. 17# 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 30"""Dummy Port implementation used for testing.""" 31 32import os 33import time 34 35import base 36 37 38class TestPort(base.Port): 39 """Test implementation of the Port interface.""" 40 41 def __init__(self, port_name=None, options=None): 42 base.Port.__init__(self, port_name, options) 43 44 def base_platforms(self): 45 return ('test',) 46 47 def baseline_path(self): 48 curdir = os.path.abspath(__file__) 49 self.topdir = curdir[0:curdir.index("WebKitTools")] 50 return os.path.join(self.topdir, 'LayoutTests', 'platform', 'test') 51 52 def baseline_search_path(self): 53 return [self.baseline_path()] 54 55 def check_sys_deps(self): 56 return True 57 58 def diff_image(self, actual_filename, expected_filename, diff_filename): 59 return False 60 61 def compare_text(self, actual_text, expected_text): 62 return False 63 64 def diff_text(self, actual_text, expected_text, 65 actual_filename, expected_filename): 66 return '' 67 68 def name(self): 69 return self._name 70 71 def num_cores(self): 72 return int(os.popen2("sysctl -n hw.ncpu")[1].read()) 73 74 def options(self): 75 return self._options 76 77 def results_directory(self): 78 return '/tmp' + self._options.results_directory 79 80 def setup_test_run(self): 81 pass 82 83 def show_results_html_file(self, filename): 84 pass 85 86 def start_driver(self, image_path, options): 87 return TestDriver(image_path, options, self) 88 89 def start_http_server(self): 90 pass 91 92 def start_websocket_server(self): 93 pass 94 95 def start_helper(self): 96 pass 97 98 def stop_http_server(self): 99 pass 100 101 def stop_websocket_server(self): 102 pass 103 104 def stop_helper(self): 105 pass 106 107 def test_expectations(self): 108 return '' 109 110 def test_base_platform_names(self): 111 return ('test',) 112 113 def test_platform_name(self): 114 return 'test' 115 116 def test_platform_names(self): 117 return self.test_base_platform_names() 118 119 def version(): 120 return '' 121 122 def wdiff_text(self, actual_filename, expected_filename): 123 return '' 124 125 126class TestDriver(base.Driver): 127 """Test/Dummy implementation of the DumpRenderTree interface.""" 128 129 def __init__(self, image_path, test_driver_options, port): 130 self._driver_options = test_driver_options 131 self._image_path = image_path 132 self._port = port 133 134 def poll(self): 135 return True 136 137 def returncode(self): 138 return 0 139 140 def run_test(self, uri, timeoutms, image_hash): 141 return (False, False, image_hash, '', None) 142 143 def stop(self): 144 pass 145