gecko-dev/testing/mochitest/moz.build

229 строки
6.9 KiB
Plaintext
Исходник Обычный вид История

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += [
'manifests',
'tests',
'ssltunnel',
'BrowserTestUtils',
]
XPI_NAME = 'mochijar'
USE_EXTENSION_MANIFEST = True
FINAL_TARGET_FILES += [
'api.js',
'manifest.json',
'schema.json',
]
FINAL_TARGET_FILES.content += [
'browser-harness.xul',
'browser-test.js',
'chrome-harness.js',
'chunkifyTests.js',
'harness.xul',
'manifestLibrary.js',
'mochitest-e10s-utils.js',
'nested_setup.js',
'redirect.html',
'server.js',
'shutdown-leaks-collector.js',
'ShutdownLeaksCollector.jsm',
]
FINAL_TARGET_FILES.content.dynamic += [
'dynamic/getMyDirectory.sjs',
]
FINAL_TARGET_FILES.content.static += [
'static/harness.css',
]
FINAL_TARGET_FILES.content.tests.SimpleTest += [
'../../docshell/test/chrome/docshell_helpers.js',
'../modules/StructuredLog.jsm',
'../specialpowers/content/MozillaLogger.js',
'../specialpowers/content/specialpowers.js',
'../specialpowers/content/specialpowersAPI.js',
'../specialpowers/content/SpecialPowersObserverAPI.js',
'tests/SimpleTest/AddTask.js',
'tests/SimpleTest/AsyncUtilsContent.js',
'tests/SimpleTest/ChromePowers.js',
'tests/SimpleTest/EventUtils.js',
'tests/SimpleTest/ExtensionTestUtils.js',
'tests/SimpleTest/iframe-between-tests.html',
'tests/SimpleTest/LogController.js',
'tests/SimpleTest/MemoryStats.js',
'tests/SimpleTest/MockObjects.js',
'tests/SimpleTest/NativeKeyCodes.js',
'tests/SimpleTest/paint_listener.js',
'tests/SimpleTest/setup.js',
'tests/SimpleTest/SimpleTest.js',
'tests/SimpleTest/test.css',
'tests/SimpleTest/TestRunner.js',
'tests/SimpleTest/WindowSnapshot.js',
]
FINAL_TARGET_FILES.content.tests.BrowserTestUtils += [
'BrowserTestUtils/content/content-about-page-utils.js',
'BrowserTestUtils/content/content-task.js',
'BrowserTestUtils/content/content-utils.js',
]
MOCHITEST_MANIFESTS += [
'baselinecoverage/plain/mochitest.ini',
'tests/MochiKit-1.4.2/tests/mochitest.ini',
]
MOCHITEST_CHROME_MANIFESTS += [
'baselinecoverage/chrome/chrome.ini',
'chrome/chrome.ini'
]
BROWSER_CHROME_MANIFESTS += [
'baselinecoverage/browser_chrome/browser.ini'
]
TEST_HARNESS_FILES.testing.mochitest += [
'/build/mobile/remoteautomation.py',
'/build/pgo/server-locations.txt',
'/build/sanitizers/lsan_suppressions.txt',
Bug 1373256 - Changes to support -fsanitize=integer in the codebase. r=froydnj The -fsanitize=integer analysis from UBSan can be helpful to detect signed and unsigned integer overflows in the codebase. Unfortunately, those occur very frequently, making it impossible to test anything with it without the use of a huge blacklist. This patch includes a blacklist that is broad enough to silence everything that would drain performance too much. But even with this blacklist, neither tests nor fuzzing is "clean". We can however in the future combine this with static analysis to limit ourselves to interesting places to look at, or improve the dynamic analysis to omit typical benign overflows. It also adds another attribute that can be used on functions. It is not used right now because it was initially easier to add things to the compile-time blacklist to get started. Finally, it includes a runtime suppression list and patches various parts in the test harnesses to support that. It is currently empty and it should not be used on frequent overflows because it is expensive. However, it has the advantage that it can be used to differentiate between signed and unsigned overflows while the compile-time blacklist cannot do that. So it can be used to e.g. silence unsigned integer overflows on a file or function while still reporting signed issues. We can also use this suppression list for any other UBSan related suppressions, should we ever want to use other features from that sanitizer. MozReview-Commit-ID: C5ofhfJdpCS --HG-- extra : rebase_source : 952043a441b41b2f58ec4abc51ac15fa71fc142f
2017-04-09 13:59:26 +03:00
'/build/sanitizers/ubsan_suppressions.txt',
'/build/valgrind/cross-architecture.sup',
'/build/valgrind/i386-pc-linux-gnu.sup',
'/build/valgrind/x86_64-pc-linux-gnu.sup',
'/netwerk/test/httpserver/httpd.js',
'bisection.py',
'browser-harness.xul',
'browser-test.js',
'chrome-harness.js',
'chunkifyTests.js',
Bug 1453751: Load favicons in the content process. r=mak, r=gijs, r=aswan, r=mixedpuppy Summary: This moves the load of favicons into the content process. We use the same logic for finding favicons (based on waiting until none have shown up for a short time) but then load the favicon and convert it to a data uri which we then dispatch to the parent process. Along the way this fixes asssociating the load with the tab for WebExtension and devtools, fixes CSP usage for the load, fixes expiry detection of the favicon and stops us from loading the same resource twice. This change also merges the prefs browser.chrome.site_icons and browser.chrome.favicons leaving just the former controlling favicon loading. It adds the pref browser.chrome.guess_favicon to allow disabling guessing where a favicon might be located for a site (at <hostname>/favicon.ico). This is mainly to allow disabling this in tests where those additional yet automatic requests are uninteresting for the test. There are multiple clean-ups that can follow this but this is a first step along that path. MozReview-Commit-ID: E0Cs59UnxaF Reviewers: mak Tags: #secure-revision Bug #: 1453751 Differential Revision: https://phabricator.services.mozilla.com/D1672 Differential Revision: https://phabricator.services.mozilla.com/D1673 Differential Revision: https://phabricator.services.mozilla.com/D1674 Differential Revision: https://phabricator.services.mozilla.com/D1850 Differential Revision: https://phabricator.services.mozilla.com/D1869 --HG-- rename : browser/base/content/test/general/browser_bug408415.js => browser/base/content/test/favicons/browser_bug408415.js rename : browser/base/content/test/general/browser_bug550565.js => browser/base/content/test/favicons/browser_bug550565.js rename : browser/base/content/test/general/browser_favicon_change.js => browser/base/content/test/favicons/browser_favicon_change.js rename : browser/base/content/test/general/browser_favicon_change_not_in_document.js => browser/base/content/test/favicons/browser_favicon_change_not_in_document.js rename : browser/base/content/test/general/browser_subframe_favicons_not_used.js => browser/base/content/test/favicons/browser_subframe_favicons_not_used.js rename : browser/base/content/test/general/file_bug970276_favicon1.ico => browser/base/content/test/favicons/file_bug970276_favicon1.ico rename : browser/base/content/test/general/file_bug970276_favicon1.ico => browser/base/content/test/favicons/file_bug970276_favicon2.ico rename : browser/base/content/test/general/file_bug970276_popup1.html => browser/base/content/test/favicons/file_bug970276_popup1.html rename : browser/base/content/test/general/file_bug970276_popup2.html => browser/base/content/test/favicons/file_bug970276_popup2.html rename : browser/base/content/test/general/file_favicon_change.html => browser/base/content/test/favicons/file_favicon_change.html rename : browser/base/content/test/general/file_favicon_change_not_in_document.html => browser/base/content/test/favicons/file_favicon_change_not_in_document.html rename : browser/base/content/test/general/file_bug970276_favicon1.ico => browser/base/content/test/favicons/file_generic_favicon.ico rename : browser/base/content/test/general/file_with_favicon.html => browser/base/content/test/favicons/file_with_favicon.html extra : rebase_source : 6372b2681a59d267f966e9fa2ca9a54e3ff0cea0 extra : intermediate-source : b11aa832c41ac5beef9065f804d11fb7c9887990 extra : source : 638eb8a41245f6d9932861afda21edd5e0b2618a
2018-06-29 02:06:09 +03:00
'favicon.ico',
'gen_template.pl',
'harness.xul',
'leaks.py',
'mach_test_package_commands.py',
'manifest.webapp',
'manifestLibrary.js',
'mochitest_options.py',
'nested_setup.js',
'pywebsocket_wrapper.py',
'redirect.html',
'rungeckoview.py',
'runjunit.py',
'runrobocop.py',
'runtests.py',
'runtestsremote.py',
'server.js',
'start_desktop.js',
]
TEST_HARNESS_FILES.testing.mochitest.embed += [
'embed/Xm5i5kbIXzc',
'embed/Xm5i5kbIXzc^headers^',
]
TEST_HARNESS_FILES.testing.mochitest.pywebsocket += [
'pywebsocket/standalone.py',
]
TEST_HARNESS_FILES.testing.mochitest.pywebsocket.mod_pywebsocket += [
'pywebsocket/mod_pywebsocket/__init__.py',
'pywebsocket/mod_pywebsocket/_stream_base.py',
'pywebsocket/mod_pywebsocket/_stream_hixie75.py',
'pywebsocket/mod_pywebsocket/_stream_hybi.py',
'pywebsocket/mod_pywebsocket/common.py',
'pywebsocket/mod_pywebsocket/dispatch.py',
'pywebsocket/mod_pywebsocket/extensions.py',
'pywebsocket/mod_pywebsocket/fast_masking.i',
'pywebsocket/mod_pywebsocket/headerparserhandler.py',
'pywebsocket/mod_pywebsocket/http_header_util.py',
'pywebsocket/mod_pywebsocket/memorizingfile.py',
'pywebsocket/mod_pywebsocket/msgutil.py',
'pywebsocket/mod_pywebsocket/mux.py',
'pywebsocket/mod_pywebsocket/stream.py',
'pywebsocket/mod_pywebsocket/util.py',
'pywebsocket/mod_pywebsocket/xhr_benchmark_handler.py',
]
TEST_HARNESS_FILES.testing.mochitest.pywebsocket.mod_pywebsocket.handshake += [
'pywebsocket/mod_pywebsocket/handshake/__init__.py',
'pywebsocket/mod_pywebsocket/handshake/_base.py',
'pywebsocket/mod_pywebsocket/handshake/hybi.py',
'pywebsocket/mod_pywebsocket/handshake/hybi00.py',
]
TEST_HARNESS_FILES.testing.mochitest.dynamic += [
'dynamic/getMyDirectory.sjs',
]
TEST_HARNESS_FILES.testing.mochitest.static += [
'static/harness.css',
]
TEST_HARNESS_FILES.testing.mochitest.MochiKit += [
'MochiKit/__package__.js',
'MochiKit/Async.js',
'MochiKit/Base.js',
'MochiKit/Color.js',
'MochiKit/Controls.js',
'MochiKit/DateTime.js',
'MochiKit/DOM.js',
'MochiKit/DragAndDrop.js',
'MochiKit/Format.js',
'MochiKit/Iter.js',
'MochiKit/Logging.js',
'MochiKit/LoggingPane.js',
'MochiKit/MochiKit.js',
'MochiKit/MockDOM.js',
'MochiKit/New.js',
'MochiKit/Signal.js',
'MochiKit/Sortable.js',
'MochiKit/Style.js',
'MochiKit/Test.js',
'MochiKit/Visual.js',
]
TEST_HARNESS_FILES.testing.mochitest.tests.testing.mochitest.tests['MochiKit-1.4.2'].MochiKit += [
'tests/MochiKit-1.4.2/MochiKit/Async.js',
'tests/MochiKit-1.4.2/MochiKit/Base.js',
'tests/MochiKit-1.4.2/MochiKit/Color.js',
'tests/MochiKit-1.4.2/MochiKit/DateTime.js',
'tests/MochiKit-1.4.2/MochiKit/DOM.js',
'tests/MochiKit-1.4.2/MochiKit/DragAndDrop.js',
'tests/MochiKit-1.4.2/MochiKit/Format.js',
'tests/MochiKit-1.4.2/MochiKit/Iter.js',
'tests/MochiKit-1.4.2/MochiKit/Logging.js',
'tests/MochiKit-1.4.2/MochiKit/LoggingPane.js',
'tests/MochiKit-1.4.2/MochiKit/MochiKit.js',
'tests/MochiKit-1.4.2/MochiKit/MockDOM.js',
'tests/MochiKit-1.4.2/MochiKit/Position.js',
'tests/MochiKit-1.4.2/MochiKit/Selector.js',
'tests/MochiKit-1.4.2/MochiKit/Signal.js',
'tests/MochiKit-1.4.2/MochiKit/Sortable.js',
'tests/MochiKit-1.4.2/MochiKit/Style.js',
'tests/MochiKit-1.4.2/MochiKit/Test.js',
'tests/MochiKit-1.4.2/MochiKit/Visual.js',
]
TEST_HARNESS_FILES.testing.mochitest.iceserver += [
'/testing/tools/iceserver/iceserver.py',
]
TEST_HARNESS_FILES.testing.mochitest.websocketprocessbridge += [
'/testing/tools/websocketprocessbridge/websocketprocessbridge.py',
'/testing/tools/websocketprocessbridge/websocketprocessbridge_requirements.txt',
]
with Files("**"):
BUG_COMPONENT = ("Testing", "Mochitest")
SCHEDULES.exclusive = ['mochitest', 'robocop']
with Files("*remote*"):
BUG_COMPONENT = ("Firefox for Android", "Testing")