blob: 7dad67378d87478365d46255c0896c5563f87eb2 [file] [log] [blame]
# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
Pkg buildbot steps.
Runs tests for packages that are hosted in the main Dart repo and in
import os
import re
import sys
import bot
PKG_BUILDER = r'pkg-(linux|mac|win)(-(russian))?(-(debug))?'
def PkgConfig(name, is_buildbot):
"""Returns info for the current buildbot based on the name of the builder.
Currently, this is just:
- mode: "debug", "release"
- system: "linux", "mac", or "win"
pkg_pattern = re.match(PKG_BUILDER, name)
if not pkg_pattern:
return None
system =
locale =
mode = or 'release'
if system == 'win': system = 'windows'
return bot.BuildInfo('none', 'vm', mode, system, checked=True,
def PkgSteps(build_info):
common_args = ['--write-test-outcome-log']
if build_info.builder_tag:
common_args.append('--builder-tag=%s' % build_info.builder_tag)
# There are a number of big/integration tests in pkg, run with bigger timeout
timeout = 300 if build_info.mode == 'debug' else 120
common_args.append('--timeout=%s' % timeout)
# We have some unreproducible vm crashes on these bots
# We are seeing issues with pub get calls on the windows bots.
# Experiment with not running concurrent calls.
if build_info.system == 'windows':
bot.RunTest('pkg', build_info,
common_args + ['pkg', 'docs'],
# Pkg tests currently have a lot of timeouts when run in debug mode.
# See issue 18479
if build_info.mode != 'release': return
with bot.BuildStep('third_party pkg tests', swallow_error=True):
pkg_tested = os.path.join('third_party', 'pkg_tested')
for entry in os.listdir(pkg_tested):
path = os.path.join(pkg_tested, entry)
if os.path.isdir(path): bot.RunTestRunner(build_info, path)
pkgbuild_build_info = bot.BuildInfo('none', 'vm', build_info.mode,
build_info.system, checked=False)
bot.RunTest('pkgbuild_repo_pkgs', pkgbuild_build_info,
common_args + ['--append_logs', '--use-repository-packages',
public_args = (common_args +
['--append_logs', '--use-public-packages', 'pkgbuild'])
bot.RunTest('pkgbuild_public_pkgs', pkgbuild_build_info, public_args)
if __name__ == '__main__':
bot.RunBot(PkgConfig, PkgSteps)