Index: webkit/tools/layout_tests/layout_package/failure.py |
=================================================================== |
--- webkit/tools/layout_tests/layout_package/failure.py (revision 36724) |
+++ webkit/tools/layout_tests/layout_package/failure.py (working copy) |
@@ -1,200 +0,0 @@ |
-# Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-CHROMIUM_WIN = "chromium-win" |
-CHROMIUM_MAC = "chromium-mac" |
-CHROMIUM_LINUX = "chromium-linux" |
-WEBKIT_WIN_TITLE = "WebKit Win" |
-WEBKIT_MAC_TITLE = "WebKit Mac" |
-WEBKIT_TITLE = "WebKit" |
-UNKNOWN = "Unknown" |
- |
-EXPECTED_IMAGE_FILE_ENDING = "-expected.png" |
-ACTUAL_IMAGE_FILE_ENDING = "-actual.png" |
-UPSTREAM_IMAGE_FILE_ENDING = "-expected-upstream.png" |
-EXPECTED_TEXT_FILE_ENDING = "-expected.txt" |
-ACTUAL_TEXT_FILE_ENDING = "-actual.txt" |
-DIFF_IMAGE_FILE_ENDING = "-diff.png" |
-DIFF_TEXT_FILE_ENDING = "-diff.txt" |
- |
-CHROMIUM_SRC_HOME = "http://src.chromium.org/viewvc/chrome/trunk/src/webkit/" |
-CHROMIUM_TRAC_HOME = CHROMIUM_SRC_HOME + "data/layout_tests/" |
-WEBKIT_TRAC_HOME = "http://trac.webkit.org/browser/trunk/LayoutTests/" |
-WEBKIT_SVN_HOSTNAME = "svn.webkit.org" |
-THIRD_PARTY = "third_party" |
- |
-WEBKIT_PLATFORM_URL_BASE = WEBKIT_TRAC_HOME + "platform" |
-WEBKIT_LAYOUT_TEST_BASE_URL = "http://svn.webkit.org/repository/webkit/trunk/" |
-WEBKIT_IMAGE_BASELINE_BASE_URL_WIN = (WEBKIT_LAYOUT_TEST_BASE_URL + |
- "LayoutTests/platform/win/") |
-WEBKIT_IMAGE_BASELINE_BASE_URL_MAC = (WEBKIT_LAYOUT_TEST_BASE_URL + |
- "LayoutTests/platform/mac/") |
-WEBKIT_TRAC_IMAGE_BASELINE_BASE_URL_MAC = WEBKIT_PLATFORM_URL_BASE + "/mac/" |
-WEBKIT_TRAC_IMAGE_BASELINE_BASE_URL_WIN = WEBKIT_PLATFORM_URL_BASE + "/win/" |
- |
-LAYOUT_TEST_RESULTS_DIR = "layout-test-results" |
- |
-FAIL = "FAIL" |
-TIMEOUT = "TIMEOUT" |
-CRASH = "CRASH" |
-PASS = "PASS" |
-WONTFIX = "WONTFIX" |
- |
- |
-class Failure(object): |
- """ |
- This class represents a failure in the test output, and is |
- intended as a data model object. |
- """ |
- |
- def __init__(self): |
- self.platform = "" |
- self.test_path = "" |
- self.text_diff_mismatch = False |
- self.image_mismatch = False |
- self.timeout = False |
- self.crashed = False |
- self.text_baseline_url = "" |
- self.image_baseline_url = "" |
- self.text_baseline_age = "" |
- self.image_baseline_age = "" |
- self.test_age = "" |
- self.text_baseline_local = "" |
- self.image_baseline_local = "" |
- self.text_actual_local = "" |
- self.image_actual_local = "" |
- self.image_baseline_upstream_url = "" |
- self.image_baseline_upstream_local = "" |
- self.test_expectations_line = "" |
- self.flakiness = 0 |
- |
- def GetExpectedImageFilename(self): |
- return self._RenameEndOfTestPath(EXPECTED_IMAGE_FILE_ENDING) |
- |
- def GetActualImageFilename(self): |
- return self._RenameEndOfTestPath(ACTUAL_IMAGE_FILE_ENDING) |
- |
- def GetExpectedTextFilename(self): |
- return self._RenameEndOfTestPath(EXPECTED_TEXT_FILE_ENDING) |
- |
- def GetActualTextFilename(self): |
- return self._RenameEndOfTestPath(ACTUAL_TEXT_FILE_ENDING) |
- |
- def GetImageDiffFilename(self): |
- return self._RenameEndOfTestPath(DIFF_IMAGE_FILE_ENDING) |
- |
- def GetTextDiffFilename(self): |
- return self._RenameEndOfTestPath(DIFF_TEXT_FILE_ENDING) |
- |
- def GetImageUpstreamFilename(self): |
- return self._RenameEndOfTestPath(UPSTREAM_IMAGE_FILE_ENDING) |
- |
- def _RenameEndOfTestPath(self, suffix): |
- last_index = self.test_path.rfind(".") |
- if last_index == -1: |
- return self.test_path |
- return self.test_path[0:last_index] + suffix |
- |
- def GetTestHome(self): |
- if self.test_path.startswith("chrome"): |
- return CHROMIUM_TRAC_HOME + self.test_path |
- return WEBKIT_TRAC_HOME + self.test_path |
- |
- def GetImageBaselineTracHome(self): |
- if self.IsImageBaselineInWebkit(): |
- return self._GetTracHome(self.image_baseline_url) |
- return self.image_baseline_url |
- |
- def GetTextBaselineTracHome(self): |
- if self.text_baseline_url and self.IsTextBaselineInWebkit(): |
- return self._GetTracHome(self.text_baseline_url) |
- return self.text_baseline_url |
- |
- def _GetTracHome(self, file): |
- return WEBKIT_TRAC_HOME + file[file.find("LayoutTests"):] |
- |
- def GetTextBaselineLocation(self): |
- return self._GetFileLocation(self.text_baseline_url) |
- |
- def GetImageBaselineLocation(self): |
- return self._GetFileLocation(self.image_baseline_url) |
- |
- # TODO(gwilson): Refactor this logic so it can be used by multiple scripts. |
- # TODO(gwilson): Change this so that it respects the fallback order of |
- # different platforms. (If platform is mac, the fallback should be |
- # different.) |
- |
- def _GetFileLocation(self, file): |
- if not file: |
- return None |
- if file.find(CHROMIUM_WIN) > -1: |
- return CHROMIUM_WIN |
- if file.find(CHROMIUM_MAC) > -1: |
- return CHROMIUM_MAC |
- if file.find(CHROMIUM_LINUX) > -1: |
- return CHROMIUM_LINUX |
- if file.startswith(WEBKIT_IMAGE_BASELINE_BASE_URL_WIN): |
- return WEBKIT_WIN_TITLE |
- if file.startswith(WEBKIT_IMAGE_BASELINE_BASE_URL_MAC): |
- return WEBKIT_MAC_TITLE |
- # TODO(gwilson): Add mac-snowleopard, mac-leopard, mac-tiger here. |
- if file.startswith(WEBKIT_LAYOUT_TEST_BASE_URL): |
- return WEBKIT_TITLE |
- return UNKNOWN |
- |
- def _IsFileInWebKit(self, file): |
- return file != None and (file.find(WEBKIT_SVN_HOSTNAME) > -1 or |
- file.find(THIRD_PARTY) > -1) |
- |
- def IsImageBaselineInChromium(self): |
- return not self.IsImageBaselineInWebkit() |
- |
- def IsImageBaselineInWebkit(self): |
- return self._IsFileInWebKit(self.image_baseline_url) |
- |
- def IsTextBaselineInChromium(self): |
- return not self.IsTextBaselineInWebkit() |
- |
- def IsTextBaselineInWebkit(self): |
- return self._IsFileInWebKit(self.text_baseline_url) |
- |
- def GetTextResultLocationInZipFile(self): |
- return self._GetFileLocationInZipFile(self.GetActualTextFilename()) |
- |
- def GetImageResultLocationInZipFile(self): |
- return self._GetFileLocationInZipFile(self.GetActualImageFilename()) |
- |
- def _GetFileLocationInZipFile(self, file): |
- return "%s/%s" % (LAYOUT_TEST_RESULTS_DIR, file) |
- |
- # TODO(gwilson): implement this method. |
- def GetAllBaselineLocations(self): |
- return None |
- |
- # This method determines whether the test is actually expected to fail, |
- # in order to know whether to retrieve expected test results for it. |
- # (test results dont exist for tests expected to fail/crash.) |
- |
- def IsExpectedToFail(self): |
- return self._FindKeywordInExpectations(FAIL) |
- |
- def IsExpectedToTimeout(self): |
- return self._FindKeywordInExpectations(TIMEOUT) |
- |
- def IsExpectedToCrash(self): |
- return self._FindKeywordInExpectations(CRASH) |
- |
- def IsExpectedToPass(self): |
- return self._FindKeywordInExpectations(PASS) |
- |
- def IsWontFix(self): |
- return self._FindKeywordInExpectations(WONTFIX) |
- |
- def _FindKeywordInExpectations(self, keyword): |
- if (not self.test_expectations_line or |
- len(self.test_expectations_line) == 0): |
- return False |
- if self.test_expectations_line.find(keyword) > -1: |
- return True |
- return False |