Index: frog/scripts/buildbot_annotated_steps.py |
diff --git a/frog/scripts/buildbot_annotated_steps.py b/frog/scripts/buildbot_annotated_steps.py |
index 3c39e63d88b2e1ada798b1581c43c57072272469..5d22266471538014aa8a926d3cebf956646766ba 100644 |
--- a/frog/scripts/buildbot_annotated_steps.py |
+++ b/frog/scripts/buildbot_annotated_steps.py |
@@ -18,25 +18,28 @@ BUILDER_NAME = 'BUILDBOT_BUILDERNAME' |
FROG_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
-BUILDER_PATTERN = r'(frog|frogsh|frogium)-linux-(debug|release)' |
+BUILDER_PATTERN = r'(frog|frogsh|frogium)-(linux|mac|windows)-(debug|release)' |
NO_COLOR_ENV = dict(os.environ) |
NO_COLOR_ENV['TERM'] = 'nocolor' |
def GetBuildInfo(): |
- """Returns a tuple (name, mode) where: |
+ """Returns a tuple (name, mode, system) where: |
- name: 'frog', 'frogsh', or None when the builder has an incorrect name |
- mode: 'debug' or 'release' |
+ - system: 'linux', 'mac', or 'windows' |
""" |
name = None |
mode = None |
+ system = None |
builder_name = os.environ.get(BUILDER_NAME) |
if builder_name: |
pattern = re.match(BUILDER_PATTERN, builder_name) |
if pattern: |
name = pattern.group(1) |
- mode = pattern.group(2) |
- return (name, mode) |
+ system = pattern.group(2) |
+ mode = pattern.group(3) |
+ return (name, mode, system) |
# TODO(sigmund): delete this convertion when test.py uses the same |
# configuration we do here. |
@@ -46,13 +49,13 @@ def ConvertConfiguration(arch, mode): |
testpy_mode = 'release' |
flags = None |
if mode == 'debug': |
- flags = '--checked' |
+ flags = ['--checked'] |
return (testpy_mode, flags) |
def TestStep(name, mode, component, targets, flags): |
print '@@@BUILD_STEP %s tests: %s@@@' % (name, component) |
- if component == 'frogium': |
- cmd = ['xvfb-run'] |
+ if component == 'frogium' or component == 'webdriver': |
+ cmd = ['xvfb-run', '-a'] |
else: |
cmd = [] |
@@ -67,17 +70,19 @@ def TestStep(name, mode, component, targets, flags): |
'-v'] |
+ targets) |
if flags: |
- cmd.append(flags) |
+ cmd.extend(flags) |
+ |
exit_code = subprocess.call(cmd, env=NO_COLOR_ENV) |
if exit_code != 0: |
print '@@@STEP_FAILURE@@@' |
return exit_code |
-def TestFrog(arch, mode): |
+def TestFrog(arch, mode, system): |
""" build and test frog. |
Args: |
- arch: either 'frog', 'frogsh' (frog self-hosted), or 'frogium' |
- mode: either 'debug' (with type checks) or 'release' (without) |
+ - system: either 'linux', 'mac', or 'windows' |
""" |
# Make sure we are in the frog directory |
@@ -105,10 +110,22 @@ def TestFrog(arch, mode): |
TestStep("leg_extra", testpy_mode, 'vm', ['leg'], flags) |
else: |
- if (TestStep("browser", testpy_mode, 'frogium', |
- ['client', 'language', 'corelib', 'isolate', 'frog', |
- 'leg', 'peg', 'css'], flags) != 0): |
- return 1 |
+ # DumpRenderTree tests: |
+ tests = [ |
+ 'client', 'language', 'corelib', 'isolate', 'frog', 'leg', 'peg', 'css'] |
+ TestStep("browser", testpy_mode, 'frogium', tests, flags) |
+ |
+ # Webdriver tests. |
+ if system == 'linux': |
+ browsers = ['ff', 'chrome'] |
+ elif system == 'mac': |
+ browsers = ['ff', 'chrome', 'safari'] |
+ else: |
+ browsers = ['ff', 'chrome', 'ie'] |
+ |
+ for browser in browsers: |
+ TestStep(browser, testpy_mode, 'webdriver', tests, |
+ flags + ['--browser=' + browser]) |
return 0 |
@@ -118,12 +135,12 @@ def main(): |
print 'Script pathname not known, giving up.' |
return 1 |
- arch, mode = GetBuildInfo() |
- print "arch: %s, mode: %s" % (arch, mode) |
+ arch, mode, system = GetBuildInfo() |
+ print "arch: %s, mode: %s, system: %s" % (arch, mode, system) |
if arch is None: |
return 1 |
- status = TestFrog(arch, mode) |
+ status = TestFrog(arch, mode, system) |
if status != 0: |
print '@@@STEP_FAILURE@@@' |
return status |