| Index: Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Builder_unittests.js
|
| diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Builder_unittests.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Builder_unittests.js
|
| deleted file mode 100644
|
| index 0b980ab905b24584d682145058412d00ae9ec5b5..0000000000000000000000000000000000000000
|
| --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Builder_unittests.js
|
| +++ /dev/null
|
| @@ -1,269 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2011 Apple Inc. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - * 1. Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright
|
| - * notice, this list of conditions and the following disclaimer in the
|
| - * documentation and/or other materials provided with the distribution.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
| - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
| - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
| - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
| - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
| - * THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -(function() {
|
| -
|
| -module("Builder");
|
| -
|
| -function runGetNumberOfFailingTestsTest(jsonData, callback) {
|
| - var mockBuildbot = {};
|
| - mockBuildbot.baseURL = 'http://example.com/';
|
| -
|
| - var builder = new Builder('test builder', mockBuildbot);
|
| -
|
| - var realGetResource = window.getResource;
|
| - window.getResource = function(url, successCallback, errorCallback) {
|
| - var mockXHR = {};
|
| - mockXHR.responseText = JSON.stringify(jsonData);
|
| -
|
| - // FIXME: It would be better for this callback to happen
|
| - // asynchronously, to match what happens for real requests.
|
| - successCallback(mockXHR);
|
| - };
|
| -
|
| - // FIXME: It's lame to be modifying singletons like this. We should get rid
|
| - // of our singleton usage entirely!
|
| - ok(!("PersistentCache" in window));
|
| - window.PersistentCache = {
|
| - contains: function() { return false; },
|
| - set: function() { },
|
| - get: function() { },
|
| - };
|
| -
|
| - builder.getNumberOfFailingTests(1, callback);
|
| -
|
| - window.getResource = realGetResource;
|
| - equal(window.getResource, realGetResource);
|
| - delete window.PersistentCache;
|
| -}
|
| -
|
| -test("getNumberOfFailingTests shouldn't include leaks", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isFinished: true,
|
| - isStarted: true,
|
| - name: 'layout-test',
|
| - results: [
|
| - 2,
|
| - [
|
| - "2178 total leaks found!",
|
| - "2 test cases (<1%) had incorrect layout",
|
| - "2 test cases (<1%) crashed",
|
| - ],
|
| - ],
|
| - times: [
|
| - 1310599204.1231229,
|
| - 1310600152.973659,
|
| - ]
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, 4);
|
| - equal(tooManyFailures, false);
|
| - });
|
| -});
|
| -
|
| -test("getNumberOfFailingTests detects spurious run-webkit-tests failures", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isFinished: true,
|
| - isStarted: true,
|
| - name: "layout-test",
|
| - results: [
|
| - 2,
|
| - [
|
| - "layout-test"
|
| - ]
|
| - ],
|
| - step_number: 7,
|
| - text: [
|
| - "layout-test"
|
| - ],
|
| - times: [
|
| - 1310437736.00494,
|
| - 1310440118.038023
|
| - ],
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, -1);
|
| - equal(tooManyFailures, false);
|
| - });
|
| -});
|
| -
|
| -test("getNumberOfFailingTests understands NRWT exiting early due to too many failures", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isFinished: true,
|
| - isStarted: true,
|
| - name: "layout-test",
|
| - results: [
|
| - 2,
|
| - [
|
| - "2011-07-13 04:38:46,315 11247 manager.py:780 WARNING Exiting early after 20 crashes and 0 timeouts. 2251 tests run.",
|
| - "20 failed"
|
| - ]
|
| - ],
|
| - step_number: 4,
|
| - text: [
|
| - "2011-07-13 04:38:46,315 11247 manager.py:780 WARNING Exiting early after 20 crashes and 0 timeouts. 2251 tests run.",
|
| - "20 failed"
|
| - ],
|
| - times: [
|
| - 1310557115.793082,
|
| - 1310557129.832104
|
| - ]
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, 20);
|
| - equal(tooManyFailures, true);
|
| - });
|
| -});
|
| -
|
| -test("getNumberOfFailingTests treats build step interruptions as errors", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isFinished: true,
|
| - isStarted: true,
|
| - name: "layout-test",
|
| - results: [
|
| - 4,
|
| - [
|
| - "interrupted",
|
| - ]
|
| - ],
|
| - step_number: 5,
|
| - text: [
|
| - "layout-test",
|
| - "interrupted",
|
| - ],
|
| - times: [
|
| - 1310599204.1231229,
|
| - 1310600152.973659,
|
| - ]
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, -1);
|
| - equal(tooManyFailures, false);
|
| - });
|
| -});
|
| -
|
| -test("getNumberOfFailingTests treats unfinished test runs as errors", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isStarted: true,
|
| - name: "layout-test",
|
| - step_number: 5,
|
| - text: [
|
| - "layout-tests running"
|
| - ],
|
| - times: [
|
| - 1312989295.518481,
|
| - null
|
| - ]
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, -1);
|
| - equal(tooManyFailures, false);
|
| - });
|
| -});
|
| -
|
| -test("getNumberOfFailingTests treats successful but unbelievably short test runs as errors", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isFinished: true,
|
| - isStarted: true,
|
| - name: "layout-test",
|
| - step_number: 7,
|
| - text: [
|
| - "layout-test"
|
| - ],
|
| - times: [
|
| - 1311288797.7207019,
|
| - 1311288802.7791941
|
| - ]
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, -1);
|
| - equal(tooManyFailures, false);
|
| - });
|
| -});
|
| -
|
| -test("getNumberOfFailingTests doesn't care if a failing run is unbelievably short", 4, function() {
|
| - const jsonData = {
|
| - steps: [
|
| - {
|
| - isFinished: true,
|
| - isStarted: true,
|
| - name: "layout-test",
|
| - results: [
|
| - 2,
|
| - [
|
| - "2011-07-13 04:38:46,315 11247 manager.py:780 WARNING Exiting early after 20 crashes and 0 timeouts. 2251 tests run.",
|
| - "20 failed"
|
| - ]
|
| - ],
|
| - step_number: 4,
|
| - text: [
|
| - "2011-07-13 04:38:46,315 11247 manager.py:780 WARNING Exiting early after 20 crashes and 0 timeouts. 2251 tests run.",
|
| - "20 failed"
|
| - ],
|
| - times: [
|
| - 1310557115.793082,
|
| - 1310557119.832104
|
| - ]
|
| - },
|
| - ],
|
| - };
|
| -
|
| - runGetNumberOfFailingTestsTest(jsonData, function(failureCount, tooManyFailures) {
|
| - equal(failureCount, 20);
|
| - equal(tooManyFailures, true);
|
| - });
|
| -});
|
| -
|
| -})();
|
|
|