| Index: frog/scripts/buildbot_annotated_steps.py
|
| ===================================================================
|
| --- frog/scripts/buildbot_annotated_steps.py (revision 5854)
|
| +++ frog/scripts/buildbot_annotated_steps.py (working copy)
|
| @@ -28,18 +28,18 @@
|
| NO_COLOR_ENV['TERM'] = 'nocolor'
|
|
|
| def GetBuildInfo():
|
| - """Returns a tuple (name, mode, system, browser, option) where:
|
| - - name: 'dart2js', 'frog', 'frogsh', 'frogium', or None when the
|
| - builder has an incorrect name
|
| + """Returns a tuple (compiler, runtime, mode, system, option) where:
|
| + - compiler: 'dart2js', 'frog', 'frogsh', or None when the builder has an
|
| + incorrect name
|
| + - runtime: 'd8', 'ie', 'ff', 'safari', 'chrome', 'opera'
|
| - mode: 'debug' or 'release'
|
| - system: 'linux', 'mac', or 'win7'
|
| - - browser: 'ie', 'ff', 'safari', 'chrome'
|
| - option: 'checked'
|
| """
|
| - name = None
|
| + compiler = None
|
| + runtime = None
|
| mode = None
|
| system = None
|
| - browser = None
|
| builder_name = os.environ.get(BUILDER_NAME)
|
| option = None
|
| if builder_name:
|
| @@ -49,20 +49,22 @@
|
| web_pattern = re.match(WEB_BUILDER, builder_name)
|
|
|
| if dart2js_pattern:
|
| - name = 'dart2js'
|
| + compiler = 'dart2js'
|
| + runtime = 'd8'
|
| system = dart2js_pattern.group(1)
|
| mode = dart2js_pattern.group(2)
|
| option = dart2js_pattern.group(4)
|
|
|
| elif frog_pattern:
|
| - name = frog_pattern.group(1)
|
| + compiler = frog_pattern.group(1)
|
| + runtime = 'd8'
|
| system = frog_pattern.group(2)
|
| mode = frog_pattern.group(3)
|
|
|
| elif web_pattern:
|
| - name = 'frogium'
|
| + compiler = 'frog'
|
| + runtime = web_pattern.grop(1)
|
| mode = 'release'
|
| - browser = web_pattern.group(1)
|
| system = web_pattern.group(2)
|
|
|
| # TODO(jmesserly): do we want to do anything different for the second IE
|
| @@ -72,16 +74,18 @@
|
| if system == 'windows':
|
| system = 'win7'
|
|
|
| - return (name, mode, system, browser, option)
|
| + return (compiler, runtime, mode, system, option)
|
|
|
|
|
| -def ComponentsNeedsXterm(component):
|
| - return component in ['frogsh', 'frogium', 'legium', 'webdriver']
|
| +def NeedsXterm(compiler, runtime):
|
| + return compiler == 'frogsh' or runtime in ['ie', 'chrome', 'safari', 'opera',
|
| + 'ff', 'drt']
|
|
|
| -def TestStep(name, mode, system, component, targets, flags):
|
| - print '@@@BUILD_STEP %s tests: %s %s@@@' % (name, component, ' '.join(flags))
|
| +def TestStep(name, mode, system, compiler, runtime, targets, flags):
|
| + print '@@@BUILD_STEP %s %s tests: %s %s@@@' % (name, compiler, runtime,
|
| + ' '.join(flags))
|
| sys.stdout.flush()
|
| - if ComponentsNeedsXterm(component) and system == 'linux':
|
| + if NeedsXterm(compiler, runtime) and system == 'linux':
|
| cmd = ['xvfb-run', '-a']
|
| else:
|
| cmd = []
|
| @@ -91,7 +95,8 @@
|
| cmd.extend([sys.executable,
|
| os.path.join(os.curdir, 'tools', 'test.py'),
|
| '--mode=' + mode,
|
| - '--component=' + component,
|
| + '--compiler=' + compiler,
|
| + '--runtime=' + runtime,
|
| '--time',
|
| '--report'])
|
|
|
| @@ -111,11 +116,10 @@
|
| return exit_code
|
|
|
|
|
| -def BuildFrog(component, mode, system):
|
| +def BuildFrog(compiler, mode, system):
|
| """ build frog.
|
| Args:
|
| - - component: either 'dart2js', 'frog', 'frogsh' (frog
|
| - self-hosted), 'frogium' or 'legium'
|
| + - compiler: either 'dart2js', 'frog', 'frogsh' (frog self-hosted)
|
| - mode: either 'debug' or 'release'
|
| - system: either 'linux', 'mac', or 'win7'
|
| """
|
| @@ -129,14 +133,13 @@
|
| return subprocess.call(args, env=NO_COLOR_ENV)
|
|
|
|
|
| -def TestFrog(component, mode, system, browser, option, flags):
|
| +def TestFrog(compiler, runtime, mode, system, option, flags):
|
| """ test frog.
|
| Args:
|
| - - component: either 'dart2js', 'frog', 'frogsh' (frog
|
| - self-hosted), 'frogium', or 'legium'
|
| + - compiler: either 'dart2js', 'frog', or 'frogsh' (frog self-hosted)
|
| + - runtime: either 'd8', or one of the browsers, see GetBuildInfo
|
| - mode: either 'debug' or 'release'
|
| - system: either 'linux', 'mac', or 'win7'
|
| - - browser: one of the browsers, see GetBuildInfo
|
| - option: 'checked'
|
| - flags: extra flags to pass to test.dart
|
| """
|
| @@ -144,53 +147,44 @@
|
| # Make sure we are in the frog directory
|
| os.chdir(DART_PATH)
|
|
|
| - # TODO(jmesserly): temporary workaround until we remove nodejs from the bots
|
| - if system == 'win7':
|
| - os.environ['PATH'] += ';c:\\Program Files (x86)\\nodejs\\'
|
| -
|
| - if component == 'dart2js':
|
| + if compiler == 'dart2js':
|
| if (option == 'checked'):
|
| flags.append('--host-checked')
|
| # Leg isn't self-hosted (yet) so we run the leg unit tests on the VM.
|
| - TestStep("dart2js_unit", mode, system, 'vm', ['leg'], ['--checked'])
|
| + TestStep("dart2js_unit", mode, system, 'none', 'vm', ['leg'], ['--checked'])
|
|
|
| extra_suites = ['leg_only', 'frog_native']
|
| - TestStep("dart2js_extra", mode, system, 'dart2js', extra_suites, flags)
|
| + TestStep("dart2js_extra", mode, system, 'dart2js', runtime, extra_suites,
|
| + flags)
|
|
|
| - TestStep("dart2js", mode, system, 'dart2js', [], flags)
|
| + TestStep("dart2js", mode, system, 'dart2js', runtime, [], flags)
|
|
|
| - elif component != 'frogium': # frog and frogsh
|
| - TestStep("frog", mode, system, component, [], flags)
|
| - TestStep("frog_extra", mode, system,
|
| - component, ['frog', 'frog_native', 'peg', 'css'], flags)
|
| - TestStep("sdk", mode, system,
|
| - 'vm', ['dartdoc'], flags)
|
| + elif runtime == 'd8' and compiler in ['frog', 'frogsh']:
|
| + TestStep("frog", mode, system, compiler, runtime, [], flags)
|
| + TestStep("frog_extra", mode, system, compiler, runtime,
|
| + ['frog', 'frog_native', 'peg', 'css'], flags)
|
| + TestStep("sdk", mode, system, 'none', 'vm', ['dartdoc'], flags)
|
|
|
| else:
|
| tests = ['client', 'language', 'corelib', 'isolate', 'frog',
|
| 'frog_native', 'peg', 'css']
|
|
|
| - # TODO(jmesserly): make DumpRenderTree more like other browser tests, so
|
| - # we don't have this translation step. See dartbug.com/1158.
|
| - # Ideally we can run most Chrome tests in DumpRenderTree because it's more
|
| - # debuggable, but still have some tests run the full browser.
|
| - # Also: we don't have DumpRenderTree on Windows yet
|
| # TODO(efortuna): Move Mac back to DumpRenderTree when we have a more stable
|
| # solution for DRT. Right now DRT is flakier than regular Chrome for the
|
| # isolate tests, so we're switching to use Chrome in the short term.
|
| - if browser == 'chrome' and system == 'linux':
|
| - TestStep('browser', mode, system, 'frogium', tests, flags)
|
| - TestStep('browser_dart2js', mode, system, 'legium', [], flags)
|
| - TestStep('browser_dart2js_extra', mode, system, 'legium',
|
| + if runtime == 'chrome' and system == 'linux':
|
| + TestStep('browser', mode, system, 'frog', 'drt', tests, flags)
|
| + TestStep('browser_dart2js', mode, system, 'dart2js', 'drt', [], flags)
|
| + TestStep('browser_dart2js_extra', mode, system, 'dart2js', 'drt',
|
| ['leg_only', 'frog_native'], flags)
|
| else:
|
| - additional_flags = ['--browser=' + browser]
|
| - if system.startswith('win') and browser == 'ie':
|
| + additional_flags = []
|
| + if system.startswith('win') and runtime == 'ie':
|
| # There should not be more than one InternetExplorerDriver instance
|
| # running at a time. For details, see
|
| # http://code.google.com/p/selenium/wiki/InternetExplorerDriver.
|
| additional_flags += ['-j1']
|
| - TestStep(browser, mode, system, 'webdriver', tests,
|
| + TestStep(runtime, mode, system, compiler, runtime, tests,
|
| flags + additional_flags)
|
|
|
| return 0
|
| @@ -235,30 +229,30 @@
|
| print 'Script pathname not known, giving up.'
|
| return 1
|
|
|
| - component, mode, system, browser, option = GetBuildInfo()
|
| - print "component: %s, mode: %s, system: %s, browser: %s, option: %s" % (
|
| - component, mode, system, browser, option)
|
| - if component is None:
|
| + compiler, runtime, mode, system, option = GetBuildInfo()
|
| + print "compiler: %s, runtime: %s mode: %s, system: %s, option: %s" % (
|
| + compiler, runtime, mode, system, option)
|
| + if compiler is None:
|
| return 1
|
|
|
| - status = BuildFrog(component, mode, system)
|
| + status = BuildFrog(compiler, mode, system)
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
| return status
|
|
|
| - if component == 'dart2js':
|
| - status = TestFrog(component, mode, system, browser, option, [])
|
| + if compiler == 'dart2js':
|
| + status = TestFrog(compiler, runtime, mode, system, option, [])
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
| return status # Return unconditionally for dart2js.
|
|
|
| - if component != 'frogium' or (system == 'linux' and browser == 'chrome'):
|
| - status = TestFrog(component, mode, system, browser, None, [])
|
| + if runtime != 'd8' or (system == 'linux' and runtime == 'chrome'):
|
| + status = TestFrog(compiler, runtime, mode, system, None, [])
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
| return status
|
|
|
| - status = TestFrog(component, mode, system, browser, None, ['--checked'])
|
| + status = TestFrog(compiler, runtime, mode, system, None, ['--checked'])
|
| if status != 0:
|
| print '@@@STEP_FAILURE@@@'
|
|
|
|
|