16b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# Copyright (C) 2010 Apple Inc. All rights reserved. 26b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# 36b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# Redistribution and use in source and binary forms, with or without 46b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# modification, are permitted provided that the following conditions 56b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# are met: 66b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# 1. Redistributions of source code must retain the above copyright 76b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# notice, this list of conditions and the following disclaimer. 86b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# 2. Redistributions in binary form must reproduce the above copyright 96b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# notice, this list of conditions and the following disclaimer in the 106b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# documentation and/or other materials provided with the distribution. 116b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# 126b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 136b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 146b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 156b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR 166b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 176b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 186b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 196b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 206b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 216b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 226b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 236b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerimport unittest 246b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 256b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerfrom webkitpy.common.config import build 266b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 276b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 286b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerclass ShouldBuildTest(unittest.TestCase): 296b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner _should_build_tests = [ 3081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch (["ChangeLog", "Source/WebCore/ChangeLog", "Source/WebKit2/ChangeLog-2011-02-11"], []), 3181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch (["GNUmakefile.am", "Source/WebCore/GNUmakefile.am"], ["gtk"]), 32cad810f21b803229eb11403f9209855525a25d57Steve Block (["Websites/bugs.webkit.org/foo", "Source/WebCore/bar"], ["*"]), 33f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch (["Websites/bugs.webkit.org/foo"], []), 34cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/JavaScriptCore/JavaScriptCore.xcodeproj/foo"], ["mac-leopard", "mac-snowleopard"]), 352daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch (["Source/JavaScriptCore/JavaScriptCore.vcproj/foo", "Source/WebKit2/win/WebKit2.vcproj", "Source/WebKit/win/WebKit.sln", "Tools/WebKitTestRunner/Configurations/WebKitTestRunnerCommon.vsprops"], ["win"]), 36cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/JavaScriptGlue/foo", "Source/WebCore/bar"], ["*"]), 37cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/JavaScriptGlue/foo"], ["mac-leopard", "mac-snowleopard"]), 386b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/foo"], ["*"]), 3981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch (["LayoutTests/canvas/philip/tests/size.attributes.parse.exp-expected.txt", "LayoutTests/canvas/philip/tests/size.attributes.parse.exp.html"], ["*"]), 406b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/chromium-linux/foo"], ["chromium-linux"]), 416b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/chromium-win/fast/compact/001-expected.txt"], ["chromium-win"]), 426b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/mac-leopard/foo"], ["mac-leopard"]), 432bde8e466a4451c7319e3a072d118917957d6554Steve Block (["LayoutTests/platform/mac-snowleopard/foo"], ["mac-leopard", "mac-snowleopard", "win"]), 446b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/mac-wk2/Skipped"], ["mac-snowleopard", "win"]), 456b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/mac/foo"], ["mac-leopard", "mac-snowleopard", "win"]), 466b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/win-xp/foo"], ["win"]), 476b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/win-wk2/foo"], ["win"]), 486b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner (["LayoutTests/platform/win/foo"], ["win"]), 492bde8e466a4451c7319e3a072d118917957d6554Steve Block (["Source/WebCore.exp.in", "Source/WebKit/mac/WebKit.exp"], ["mac-leopard", "mac-snowleopard"]), 50cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/mac/foo"], ["chromium-mac", "mac-leopard", "mac-snowleopard"]), 51cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/win/foo"], ["chromium-win", "win"]), 52cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/platform/graphics/gpu/foo"], ["mac-leopard", "mac-snowleopard"]), 53cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/platform/wx/wxcode/win/foo"], []), 54cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/rendering/RenderThemeMac.mm", "Source/WebCore/rendering/RenderThemeMac.h"], ["mac-leopard", "mac-snowleopard"]), 55cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/rendering/RenderThemeChromiumLinux.h"], ["chromium-linux"]), 56cad810f21b803229eb11403f9209855525a25d57Steve Block (["Source/WebCore/rendering/RenderThemeWinCE.h"], []), 572bde8e466a4451c7319e3a072d118917957d6554Steve Block (["Tools/BuildSlaveSupport/build.webkit.org-config/public_html/LeaksViewer/LeaksViewer.js"], []), 586b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ] 596b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 606b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner def test_should_build(self): 616b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner for files, platforms in self._should_build_tests: 626b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner # FIXME: We should test more platforms here once 636b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner # build._should_file_trigger_build is implemented for them. 642bde8e466a4451c7319e3a072d118917957d6554Steve Block for platform in ["mac-leopard", "mac-snowleopard", "win"]: 656b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner should_build = platform in platforms or "*" in platforms 666b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner self.assertEqual(build.should_build(platform, files), should_build, "%s should%s have built but did%s (files: %s)" % (platform, "" if should_build else "n't", "n't" if should_build else "", str(files))) 676b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 686b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner 696b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brennerif __name__ == "__main__": 706b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner unittest.main() 71