| Index: frog/scripts/buildbot_annotated_steps.py
|
| diff --git a/frog/scripts/buildbot_annotated_steps.py b/frog/scripts/buildbot_annotated_steps.py
|
| index 73e82c8ea8d6397432d96f6b371bf774d2f2f513..0840c420fe9155b120ab4b355fa0038bc2bceabe 100644
|
| --- a/frog/scripts/buildbot_annotated_steps.py
|
| +++ b/frog/scripts/buildbot_annotated_steps.py
|
| @@ -23,15 +23,21 @@ BUILDER_PATTERN = r'(frog|frogsh|frogium)-(linux|mac|windows)-(debug|release)'
|
| NO_COLOR_ENV = dict(os.environ)
|
| NO_COLOR_ENV['TERM'] = 'nocolor'
|
|
|
| +# Patterns are of the form "dart_client-linux-chromium-debug"
|
| +OLD_BUILDER = r'dart_client-(\w+)-chromium-(\w+)'
|
| +
|
| def GetBuildInfo():
|
| """Returns a tuple (name, mode, system) where:
|
| - - name: 'frog', 'frogsh', or None when the builder has an incorrect name
|
| + - name: 'frog', 'frogsh', 'frogium' or None when the builder has an
|
| + incorrect name
|
| - mode: 'debug' or 'release'
|
| - system: 'linux', 'mac', or 'windows'
|
| + - browser: 'ie', 'ff', 'safari', 'chrome', 'chrome_drt'
|
| """
|
| name = None
|
| mode = None
|
| system = None
|
| + browser = None
|
| builder_name = os.environ.get(BUILDER_NAME)
|
| if builder_name:
|
| pattern = re.match(BUILDER_PATTERN, builder_name)
|
| @@ -39,7 +45,29 @@ def GetBuildInfo():
|
| name = pattern.group(1)
|
| system = pattern.group(2)
|
| mode = pattern.group(3)
|
| - return (name, mode, system)
|
| +
|
| + # TODO(jmesserly): move this logic into the builder names
|
| + if name == 'frogium':
|
| + # Note: even though the browsers can run on more than one OS, we
|
| + # found identical browser behavior across OS, so we're not running
|
| + # everywhere for faster turnaround time. We're going to split different
|
| + # browser+OS combinations into different bots.
|
| + browsers = { 'win': 'ie', 'mac': 'safari', 'linux': 'ff' }
|
| + browser = browsers[system]
|
| + else:
|
| + # TODO(jmesserly): remove this once builder is renamed
|
| + pattern = re.match(OLD_BUILDER, builder_name)
|
| + if pattern:
|
| + name = 'frogium'
|
| + system = pattern.group(1)
|
| + mode = pattern.group(2)
|
| + browser = 'chrome_drt'
|
| +
|
| + # TODO(jmesserly): rename the frogium bots so we don't need this
|
| + if name == 'frogium':
|
| + mode = 'release'
|
| +
|
| + return (name, mode, system, browser)
|
|
|
|
|
| def TestStep(name, mode, system, component, targets, flags):
|
| @@ -86,12 +114,13 @@ def BuildFrog(arch, mode, system):
|
| env=NO_COLOR_ENV)
|
|
|
|
|
| -def TestFrog(arch, mode, system, flags):
|
| +def TestFrog(arch, mode, system, browser, flags):
|
| """ test frog.
|
| Args:
|
| - arch: either 'leg', 'frog', 'frogsh' (frog self-hosted), or 'frogium'
|
| - mode: either 'debug' or 'release'
|
| - system: either 'linux', 'mac', or 'windows'
|
| + - browser: one of the browsers, see GetBuildInfo
|
| - flags: extra flags to pass to test.dart
|
| """
|
|
|
| @@ -113,26 +142,12 @@ def TestFrog(arch, mode, system, flags):
|
|
|
| else:
|
| tests = ['client', 'language', 'corelib', 'isolate', 'frog', 'peg', 'css']
|
| - # TODO(efortuna): Eventually we want DumpRenderTree to run on all systems,
|
| - # but for test turnaround time, currently it is only running on linux.
|
| - if system == 'linux':
|
| - # DumpRenderTree tests (DRT is currently not available on Windows):
|
| - TestStep("browser", mode, system, 'frogium', tests, flags)
|
| -
|
| - # Webdriver tests. Even though the browsers can run on more than one OS, we
|
| - # found identical browser behavior across OS, so we're not running
|
| - # everywhere for faster turnaround time.
|
| - if system == 'linux':
|
| - browsers = ['ff']
|
| - elif system == 'mac':
|
| - browsers = ['safari']
|
| - else:
|
| - # TODO(efortuna): Use both ff and ie once we have additional buildbots.
|
| - # We're using just IE for speed on our testing right now.
|
| - browsers = ['ie'] #['ff', 'ie']
|
| -
|
|
|
| - for browser in browsers:
|
| + if browser == 'chrome_drt':
|
| + # TODO(jmesserly): make DumpRenderTree more like other browser tests, so
|
| + # we don't have this translation step. See dartbug.com/1158
|
| + TestStep('browser', mode, system, 'frogium', tests, flags)
|
| + else:
|
| TestStep(browser, mode, system, 'webdriver', tests,
|
| flags + ['--browser=' + browser])
|
|
|
| @@ -145,25 +160,24 @@ def main():
|
| print 'Script pathname not known, giving up.'
|
| return 1
|
|
|
| - arch, mode, system = GetBuildInfo()
|
| - print "arch: %s, mode: %s, system: %s" % (arch, mode, system)
|
| + arch, mode, system, browser = GetBuildInfo()
|
| + print "arch: %s, mode: %s, system: %s, browser %s" % (arch, mode, system,
|
| + browser)
|
| if arch is None:
|
| return 1
|
|
|
| - if arch == 'frogium':
|
| - mode = 'release'
|
| status = BuildFrog(arch, mode, system)
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
| return status
|
|
|
| if arch != 'frogium':
|
| - status = TestFrog(arch, mode, system, [])
|
| + status = TestFrog(arch, mode, system, browser, [])
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
| return status
|
|
|
| - status = TestFrog(arch, mode, system, ['--checked'])
|
| + status = TestFrog(arch, mode, system, browser, ['--checked'])
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
|
|
|
|