| Index: tools/bots/dart2js_dump_info.py
 | 
| ===================================================================
 | 
| --- tools/bots/dart2js_dump_info.py	(revision 0)
 | 
| +++ tools/bots/dart2js_dump_info.py	(revision 0)
 | 
| @@ -0,0 +1,75 @@
 | 
| +#!/usr/bin/python
 | 
| +
 | 
| +# Copyright (c) 2014, 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.
 | 
| +
 | 
| +"""
 | 
| +Buildbot steps for testing dart2js with --dump-info turned on
 | 
| +"""
 | 
| +import os
 | 
| +import shutil
 | 
| +import sys
 | 
| +import bot
 | 
| +import bot_utils
 | 
| +
 | 
| +utils = bot_utils.GetUtils()
 | 
| +HOST_OS = utils.GuessOS()
 | 
| +
 | 
| +def DumpConfig(name, is_buildbot):
 | 
| +  """Returns info for the current buildbot.
 | 
| +  We only run this bot on linux, so all of this is just hard coded.
 | 
| +  """
 | 
| +  return bot.BuildInfo('none', 'none', 'release', 'linux')
 | 
| +
 | 
| +def Run(args):
 | 
| +  print "Running: %s" % ' '.join(args)
 | 
| +  sys.stdout.flush()
 | 
| +  bot.RunProcess(args)
 | 
| +
 | 
| +def DumpSteps(build_info):
 | 
| +  build_root = utils.GetBuildRoot(HOST_OS, mode='release', arch='ia32')
 | 
| +  compilations_dir = os.path.join(bot_utils.DART_DIR,
 | 
| +                                  build_root,
 | 
| +                                  'generated_compilations')
 | 
| +  tests = ['html', 'samples']
 | 
| +
 | 
| +  with bot.BuildStep('Cleaning out old compilations'):
 | 
| +    print "Cleaning out %s" % compilations_dir
 | 
| +    shutil.rmtree(compilations_dir, ignore_errors=True)
 | 
| +
 | 
| +  with utils.TempDir() as temp_dir:
 | 
| +    normal_compilations = os.path.join(temp_dir, 'normal')
 | 
| +    dump_compilations = os.path.join(temp_dir, 'dump')
 | 
| +    normal_compilation_command = [sys.executable, './tools/test.py',
 | 
| +                                  '--mode=' + build_info.mode,
 | 
| +                                  '-cdart2js', '-rnone'] + tests
 | 
| +    with bot.BuildStep('Compiling without dump info'):
 | 
| +      Run(normal_compilation_command)
 | 
| +      pass
 | 
| +
 | 
| +    with bot.BuildStep('Store normal compilation artifacts'):
 | 
| +      args = ['mv', compilations_dir, normal_compilations]
 | 
| +      Run(args)
 | 
| +
 | 
| +    with bot.BuildStep('Compiling with dump info'):
 | 
| +      args = normal_compilation_command + ['--dart2js-options=--dump-info']
 | 
| +      Run(args)
 | 
| +
 | 
| +    with bot.BuildStep('Store normal compilation artifacts'):
 | 
| +      args = ['mv', compilations_dir, dump_compilations]
 | 
| +      Run(args)
 | 
| +
 | 
| +    with bot.BuildStep('Compare outputs'):
 | 
| +      args = ['diff', '-rq', '-x', '*\.json',
 | 
| +              normal_compilations, dump_compilations]
 | 
| +      # Diff will return non zero and we will throw if there are any differences
 | 
| +      Run(args)
 | 
| +
 | 
| +    with bot.BuildStep('Validate dump files'):
 | 
| +      # Do whatever you like :-), files are in dump_compilations
 | 
| +      pass
 | 
| +
 | 
| +if __name__ == '__main__':
 | 
| +  bot.RunBot(DumpConfig, DumpSteps)
 | 
| +
 | 
| 
 | 
| Property changes on: tools/bots/dart2js_dump_info.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |