| Index: tools/bots/bot.py
 | 
| diff --git a/tools/bots/bot.py b/tools/bots/bot.py
 | 
| index 0015f471e931bc0779b95ca3cdb804344601d9ab..ed20c5d93208704e5fd588c029fabaf39300c202 100644
 | 
| --- a/tools/bots/bot.py
 | 
| +++ b/tools/bots/bot.py
 | 
| @@ -15,7 +15,11 @@ from os.path import dirname
 | 
|  import subprocess
 | 
|  import sys
 | 
|  
 | 
| -DART_PATH = dirname(dirname(dirname(abspath(__file__))))
 | 
| +import bot_utils
 | 
| +
 | 
| +utils = bot_utils.GetUtils()
 | 
| +
 | 
| +BUILD_OS = utils.GuessOS()
 | 
|  
 | 
|  BUILDER_NAME = 'BUILDBOT_BUILDERNAME'
 | 
|  BUILDER_CLOBBER = 'BUILDBOT_CLOBBER'
 | 
| @@ -151,7 +155,7 @@ def RunBot(parse_name, custom_steps, build_step=BuildSDK):
 | 
|    build_info.PrintBuildInfo()
 | 
|  
 | 
|    # Make sure we are in the dart directory
 | 
| -  os.chdir(DART_PATH)
 | 
| +  os.chdir(bot_utils.DART_DIR)
 | 
|  
 | 
|    try:
 | 
|      Clobber()
 | 
| @@ -240,6 +244,32 @@ def RunTest(name, build_info, targets, flags=None, swallow_error=False):
 | 
|      RunProcess(cmd)
 | 
|  
 | 
|  
 | 
| +def RunTestRunner(build_info, path):
 | 
| +  """
 | 
| +  Runs the test package's runner on the package at 'path'.
 | 
| +  """
 | 
| +  sdk_bin = os.path.join(
 | 
| +      bot_utils.DART_DIR,
 | 
| +      utils.GetBuildSdkBin(BUILD_OS, build_info.mode, build_info.arch))
 | 
| +
 | 
| +  build_root = utils.GetBuildRoot(
 | 
| +      BUILD_OS, build_info.mode, build_info.arch)
 | 
| +  package_root = os.path.abspath(os.path.join(build_root, 'packages'))
 | 
| +
 | 
| +  dart_name = 'dart.exe' if build_info.system == 'windows' else 'dart'
 | 
| +  dart_bin = os.path.join(sdk_bin, dart_name)
 | 
| +
 | 
| +  test_bin = os.path.abspath(
 | 
| +      os.path.join('third_party', 'pkg', 'test', 'bin', 'test.dart'))
 | 
| +
 | 
| +  with utils.ChangedWorkingDirectory(path):
 | 
| +    args = [dart_bin, '--package-root=' + package_root, test_bin,
 | 
| +            '--package-root', package_root, '--reporter', 'expanded',
 | 
| +            '--no-color']
 | 
| +    print("Running %s" % ' '.join(args))
 | 
| +    RunProcess(args)
 | 
| +
 | 
| +
 | 
|  def RunProcess(command):
 | 
|    """
 | 
|    Runs command.
 | 
| 
 |