New flakiness dashboard should hyperlink test names, WebKit revisions, and bubbles
[WebKit-https.git] / Websites / test-results / ChangeLog
1 2013-10-21  Ryosuke Niwa  <rniwa@webkit.org>
2
3         New flakiness dashboard should hyperlink test names, WebKit revisions, and bubbles
4         https://bugs.webkit.org/show_bug.cgi?id=123134
5
6         Reviewed by Stephanie Lewis.
7
8         Copied admin.css, admin-header.php, admin-footer.php, builders.php, repositories.php from WebKit Perf Monitor.
9         (Unfortunately WebKit Perf Monitor hasn't been committed into WebKit repository just yet.)
10
11         Updated various parts of index.html to linkify test names, build numbers, and bubbles (to results page).
12
13         * admin/admin.css: Added.
14         * admin/builders.php: Added.
15         * admin/index.php: Removed the duplicated code now that it uses admin-header.php.
16         * admin/repositories.php: Added.
17         * api/manifest.php: Use camelCase for blame_url and build_url to be consistent with other JSON properties.
18         Also exported testCategories from config so that we can linkify test names in the dashboard.
19         * include/admin-footer.php: Added.
20         * include/admin-header.php: Added.
21         * include/config.json: Added test categories. This avoids hard-coding the URL to trac in php/js.
22         * include/init-database.sql: Added name and build_url to builders table and category to tests.
23         * include/test-results.php: Assume the test category to be LayoutTest for now.
24
25         * index.html:
26         (TestResultsView): Initialize _builders, _slaves, _repositories, _testCategories as dictionaries as intended.
27         (TestResultsView.setTestCategories): Added.
28         (TestResultsView._createResultCell): Dynamically resolve URLs of results page and and build page.
29         (TestResultsView._populateTestPane): Linkify the test name. Unfortunately we don't have a test object anywhere.
30         We need to figure out a way to find the test object here eventually. For now, hard-coding "LayoutTest" works.
31         (TestResultsView._linkifiedTestName): Added.
32         (TestResultsView._createBuildsAndComputeSlownessOfResults): Takes builderId to set "builder" property on each
33         result object as it's used by Build class.
34         (TestResultsView._populateBuilderPane):
35         (fetchManigest):
36
37         * js/build.js:
38         (Build.buildUrl): Support $builderName so that we don't have to keep repeating builder names in the database.
39         (Build.revision): Don't access [0] if revisions[repositoryId] was undefined.
40
41 2013-10-21  Ryosuke Niwa  <rniwa@webkit.org>
42
43         New flakiness dashboard should align results by revision numbers
44         https://bugs.webkit.org/show_bug.cgi?id=123129
45
46         Reviewed by Tim Horton.
47
48         * include/config.json: Specify the default cache time to be 10 minutes.
49         * include/json-shared.php: Added Expires and Cache-Control headers. It's configurable via config.json.
50         * index.html:
51         (TestResultsView._createResultCell): Don't put '-' in a result cell without time.
52         (TestResultsView._populateTestPane): Create an array of build times ordered from the newest to the oldest.
53         Not that build.time() is the newest commit time among all repository for each result. e.g. if we had
54         both WebKit and Safari repository information in a given result, the newer of the two will be used.
55         (TestResultsView._createTestResultHeader): Added.
56         (TestResultsView._createBuildsAndComputeSlownessOfResults): Extracted from _createTestResultRow so
57         that _populateTestPane could use Build object before calling _createTestResultRow.
58         (TestResultsView._createTestResultRow): Takes buildTimes. Insert an empty cell for a build time if
59         the current row doesn't contain that a result for that build time.
60         (TestResultsView._populateBuilderPane):
61         * main.css: Tweaked the style so that bubbles are aligned vertically without '-'.
62         (.resultsTable):
63         (.resultsTable thead th):
64         (.resultsTable .resultCell):
65         (.resultsTable a):
66         (.resultsTable span a):
67
68 2013-10-21  Ryosuke Niwa  <rniwa@webkit.org>
69
70         New flakiness dashboard show test time, modifiers, and flaky tests
71         https://bugs.webkit.org/show_bug.cgi?id=123119
72
73         Reviewed by Tim Horton.
74
75         * api/failing-tests.php: Manually serialize each row in the results to avoid hitting the memory limit.
76         * include/db.php:
77         (Database::query): Added.
78         (Database::fetch_next_row): Added.
79         * include/init-database.sql: Added modifiers and time columns to results table.
80         * include/test-results.php:
81         (store_test_results): Update start_time and end_time to the union of the new interval and the existing interval.
82         (recursively_add_test_results): Handle empty $full_name to eliminate the loop over tests in store_test_results.
83         Also verify that each test name, expected and actual results conform to the specific format to prevent XSS.
84         Also use insert_row instead of select_or_insert_row to avoid issuing an unnecessary SQL query.
85         (format_result): Extracted from format_result_rows. Used in failing-tests.php.
86         * index.html:
87         (TestResultsView): Added _currentBuilderFailureType and _currentBuilderDays.
88         (TestResultsView._createResultCell): Show the test time and the expected result.
89         (TestResultsView._createTestResultRow): Compute the slowest run and also round time to tenth of second for time
90         less than 10s or second if it's more than 10s so that the test time will always be shown in two digits.
91         Also show the bug number and the latest expected result on the left columns after linkifying the bug numbers. 
92         (TestResultsView._matchesFailureType): Added. Determines whether results is of a particular failure type.
93         (TestResultsView._populateBuilderPane):
94         (TestResultsView.fetchFailingTestsForBuilder): Store the failure type such as flaky, wrongtestexpectations.
95         (TestResultsView.updateLocationHash):
96         (TestResultsView.loadTestsFromLocationHash):
97         (fetchManifest):
98         * js/dom.js:
99         (element): appendChild if an item is a Node. Otherwise, e.g. integer, create a text node out of toString() call.
100         * main.css: Updated styles.
101
102 2013-10-18  Ryosuke Niwa  <rniwa@webkit.org>
103
104         New flakiness dashboard should support showing the failing tests per builder
105         https://bugs.webkit.org/show_bug.cgi?id=123011
106
107         Reviewed by Timothy Hatcher.
108
109         Added the feature. Also did some refactoring to add this feature.
110
111         * ChangeLog: Added.
112         * api/failing-tests.php: Added.
113         * api/manifest.php: Removed the code to make maps by id. The work is now done in index.html.
114         * api/results.php:
115         * common.css: Added. Extracted from index.html.
116         * include/test-results.php: Extracted parse_revisions_array and format_result_rows from results.php.
117         * index.html:
118         * main.css: Added.
119         (TestResultsView.setAvailableTests): Added.
120         (TestResultsView.showTooltip): Fixed the code to compute x and y coordinates of the tooltip to take
121         scrolled positions into account.
122         (TestResultsView._createTestResultRow): Extracted from _populateTestPane.
123         (TestResultsView.fetchTest): Added the code to show "Loading..." in the pane while loading the JSON.
124         (TestResultsView.fetchTests): Respect the doNotUpdateHash flag.
125         (TestResultsView._populateBuilderPane): Added.
126         (TestResultsView.fetchFailingTestsForBuilder): Added.
127         (TestResultsView.updateLocationHash): Serialize builder & builderDays.
128         (TestResultsView.locationHashChanged): Don't delete existing test panes since that's now done in
129         loadTestsFromLocationHash.
130         (TestResultsView.loadTestsFromLocationHash): Take care of both 'tests' and 'builder' components.
131         (fetchManifest): Setup the UI to select a builder.
132