[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
mihaip at chromium.org
mihaip at chromium.org
Wed Dec 22 17:48:32 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 0087cc47a44f7a39bb9e5532a1f2b13ad423342b
Author: mihaip at chromium.org <mihaip at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 30 19:23:38 2010 +0000
2010-11-30 Mihai Parparita <mihaip at chromium.org>
Reviewed by Tony Chang.
Rebaseline server: baseline display tweaks
https://bugs.webkit.org/show_bug.cgi?id=50207
Determine which baselines were used when running the tests and higlight
them in the UI. Sort platform names alphabetically.
Also makes the server URL be launched in the user's browser
automatically.
* Scripts/webkitpy/tool/commands/data/rebaselineserver/main.css:
* Scripts/webkitpy/tool/commands/data/rebaselineserver/main.js:
* Scripts/webkitpy/tool/commands/data/rebaselineserver/util.js:
* Scripts/webkitpy/tool/commands/rebaselineserver.py:
* Scripts/webkitpy/tool/commands/rebaselineserver_unittest.py:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 010ccf9..4f67b23 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,22 @@
+2010-11-30 Mihai Parparita <mihaip at chromium.org>
+
+ Reviewed by Tony Chang.
+
+ Rebaseline server: baseline display tweaks
+ https://bugs.webkit.org/show_bug.cgi?id=50207
+
+ Determine which baselines were used when running the tests and higlight
+ them in the UI. Sort platform names alphabetically.
+
+ Also makes the server URL be launched in the user's browser
+ automatically.
+
+ * Scripts/webkitpy/tool/commands/data/rebaselineserver/main.css:
+ * Scripts/webkitpy/tool/commands/data/rebaselineserver/main.js:
+ * Scripts/webkitpy/tool/commands/data/rebaselineserver/util.js:
+ * Scripts/webkitpy/tool/commands/rebaselineserver.py:
+ * Scripts/webkitpy/tool/commands/rebaselineserver_unittest.py:
+
2010-11-30 Dan Bernstein <mitz at apple.com>
Reviewed by Anders Carlsson.
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.css b/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.css
index 62afda6..aff2bf6 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.css
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.css
@@ -217,6 +217,23 @@ a, .link {
color: gray;
}
+#current-baselines {
+ font-weight: normal !important;
+}
+
+#current-baselines .platform {
+ font-weight: bold;
+}
+
+#current-baselines a {
+ color: #ddf;
+}
+
+#current-baselines .was-used-for-test {
+ color: #aaf;
+ font-weight: bold;
+}
+
#action-buttons {
float: right;
}
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.js b/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.js
index 25f9146..66990d0 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.js
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/main.js
@@ -92,7 +92,7 @@ function main()
var platformOption = document.createElement('option');
platformOption.value = platform;
platformOption.textContent = platform;
-
+
var targetOption = platformOption.cloneNode(true);
targetOption.selected = platform == platforms.defaultPlatform;
$('baseline-target').appendChild(targetOption);
@@ -141,7 +141,7 @@ function displayResults()
selectFailureType();
- document.body.classList.remove('loading');
+ document.body.className = '';
}
/**
@@ -253,13 +253,17 @@ function selectTest()
currentBaselines.textContent = '';
var baselines = results.tests[selectedTest].baselines;
var testName = selectedTest.split('.').slice(0, -1).join('.');
- for (var platform in baselines) {
- if (currentBaselines.firstChild) {
+ getSortedKeys(baselines).forEach(function(platform, i) {
+ if (i != 0) {
currentBaselines.appendChild(document.createTextNode('; '));
}
- currentBaselines.appendChild(document.createTextNode(platform + ' ('));
- for (var i = 0, extension; extension = baselines[platform][i]; i++) {
- if (i != 0) {
+ var platformName = document.createElement('span');
+ platformName.className = 'platform';
+ platformName.textContent = platform;
+ currentBaselines.appendChild(platformName);
+ currentBaselines.appendChild(document.createTextNode(' ('));
+ getSortedKeys(baselines[platform]).forEach(function(extension, j) {
+ if (j != 0) {
currentBaselines.appendChild(document.createTextNode(', '));
}
var link = document.createElement('a');
@@ -275,10 +279,13 @@ function selectTest()
link.textContent = extension.substring(1);
}
link.target = '_blank';
+ if (baselines[platform][extension]) {
+ link.className = 'was-used-for-test';
+ }
currentBaselines.appendChild(link);
- }
+ });
currentBaselines.appendChild(document.createTextNode(')'));
- }
+ });
updateState();
loupe.hide();
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/util.js b/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/util.js
index b348462..5ad7612 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/util.js
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/util.js
@@ -91,4 +91,14 @@ function toggle(id)
function getTracUrl(layoutTestPath)
{
return 'http://trac.webkit.org/browser/trunk/LayoutTests/' + layoutTestPath;
+}
+
+function getSortedKeys(obj)
+{
+ var keys = [];
+ for (var key in obj) {
+ keys.push(key);
+ }
+ keys.sort();
+ return keys;
}
\ No newline at end of file
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver.py b/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver.py
index 2924a6f..2dcc566 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver.py
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver.py
@@ -183,7 +183,7 @@ class RebaselineHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
shutil.copyfileobj(static_file, self.wfile)
-def _get_test_baselines(test_file, layout_tests_directory, platforms, filesystem):
+def _get_test_baselines(test_file, test_port, layout_tests_directory, platforms, filesystem):
class AllPlatformsPort(WebKitPort):
def __init__(self):
WebKitPort.__init__(self, filesystem=filesystem)
@@ -196,11 +196,14 @@ def _get_test_baselines(test_file, layout_tests_directory, platforms, filesystem
def platform_from_directory(self, directory):
return self._platforms_by_directory[directory]
+ test_path = filesystem.join(layout_tests_directory, test_file)
+
all_platforms_port = AllPlatformsPort()
- test_baselines = {}
+ all_test_baselines = {}
for baseline_extension in ('.txt', '.checksum', '.png'):
- test_path = filesystem.join(layout_tests_directory, test_file)
+ test_baselines = test_port.expected_baselines(
+ test_path, baseline_extension)
baselines = all_platforms_port.expected_baselines(
test_path, baseline_extension, all_baselines=True)
for platform_directory, expected_filename in baselines:
@@ -211,14 +214,12 @@ def _get_test_baselines(test_file, layout_tests_directory, platforms, filesystem
else:
platform = all_platforms_port.platform_from_directory(
platform_directory)
- if platform not in test_baselines:
- test_baselines[platform] = []
- test_baselines[platform].append(baseline_extension)
+ platform_baselines = all_test_baselines.setdefault(platform, {})
+ was_used_for_test = (
+ platform_directory, expected_filename) in test_baselines
+ platform_baselines[baseline_extension] = was_used_for_test
- for platform, extensions in test_baselines.items():
- test_baselines[platform] = tuple(extensions)
-
- return test_baselines
+ return all_test_baselines
class RebaselineServer(AbstractDeclarativeCommand):
name = "rebaseline-server"
@@ -250,12 +251,17 @@ class RebaselineServer(AbstractDeclarativeCommand):
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, layout_tests_directory, platforms, filesystem)
+ test_file, port, layout_tests_directory, platforms, filesystem)
+
+ 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
- print "Starting server at http://localhost:%d/" % options.httpd_port
- print ("Use the 'Exit' link in the UI, http://localhost:%d/"
- "quitquitquit or Ctrl-C to stop") % options.httpd_port
+ threading.Timer(
+ .1, lambda: self._tool.user.open_url(server_url)).start()
httpd = RebaselineHTTPServer(
httpd_port=options.httpd_port,
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver_unittest.py b/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver_unittest.py
index ea52902..b37da3d 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver_unittest.py
@@ -30,6 +30,7 @@ import unittest
from webkitpy.common.system import filesystem_mock
from webkitpy.layout_tests.port import base
+from webkitpy.layout_tests.port.webkit import WebKitPort
from webkitpy.tool.commands import rebaselineserver
@@ -37,7 +38,7 @@ class GetBaselinesTest(unittest.TestCase):
def test_no_baselines(self):
self._assertBaselines(
test_files=(),
- test='fast/missing.html',
+ test_name='fast/missing.html',
expected_baselines={})
def test_text_baselines(self):
@@ -46,8 +47,11 @@ class GetBaselinesTest(unittest.TestCase):
'fast/text-expected.txt',
'platform/mac/fast/text-expected.txt',
),
- test='fast/text.html',
- expected_baselines={'mac': ('.txt',), 'base': ('.txt',)})
+ test_name='fast/text.html',
+ expected_baselines={
+ 'mac': {'.txt': True},
+ 'base': {'.txt': False},
+ })
def test_image_and_text_baselines(self):
self._assertBaselines(
@@ -58,11 +62,11 @@ class GetBaselinesTest(unittest.TestCase):
'platform/win/fast/image-expected.png',
'platform/win/fast/image-expected.checksum',
),
- test='fast/image.html',
+ test_name='fast/image.html',
expected_baselines={
- 'base': ('.txt',),
- 'mac': ('.checksum', '.png'),
- 'win': ('.checksum', '.png'),
+ 'base': {'.txt': True},
+ 'mac': {'.checksum': True, '.png': True},
+ 'win': {'.checksum': False, '.png': False},
})
def test_extra_baselines(self):
@@ -71,18 +75,25 @@ class GetBaselinesTest(unittest.TestCase):
'fast/text-expected.txt',
'platform/nosuchplatform/fast/text-expected.txt',
),
- test='fast/text.html',
- expected_baselines={'base': ('.txt',)})
+ test_name='fast/text.html',
+ expected_baselines={'base': {'.txt': True}})
- def _assertBaselines(self, test_files, test, expected_baselines):
+ def _assertBaselines(self, test_files, test_name, expected_baselines):
layout_tests_directory = base.Port().layout_tests_dir()
mock_filesystem = filesystem_mock.MockFileSystem()
- for file in test_files + (test,):
+ for file in test_files + (test_name,):
file_path = mock_filesystem.join(layout_tests_directory, file)
mock_filesystem.files[file_path] = ''
+
+ class TestMacPort(WebKitPort):
+ def __init__(self):
+ WebKitPort.__init__(self, filesystem=mock_filesystem)
+ self._name = 'mac'
+
actual_baselines = rebaselineserver._get_test_baselines(
- test,
+ test_name,
+ TestMacPort(),
layout_tests_directory,
('mac', 'win', 'linux'),
mock_filesystem)
- self.assertEqual(actual_baselines, expected_baselines)
+ self.assertEqual(expected_baselines, actual_baselines)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list