diff options
-rw-r--r-- | testing/buildbot/chromium.linux.json | 19 | ||||
-rw-r--r-- | testing/buildbot/tryserver.chromium.linux.json | 21 | ||||
-rwxr-xr-x | testing/scripts/gn_check.py | 57 | ||||
-rwxr-xr-x | testing/scripts/gyp_flag_compare.py | 49 |
4 files changed, 145 insertions, 1 deletions
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json index f0cfa3b..cadc084 100644 --- a/testing/buildbot/chromium.linux.json +++ b/testing/buildbot/chromium.linux.json @@ -3,6 +3,12 @@ "additional_compile_targets": [ "chrome_shell_apk", "mandoline:all" + ], + "scripts": [ + { + "name": "gn_check", + "script": "gn_check.py" + } ] }, "Android GN (dbg)": { @@ -364,6 +370,19 @@ { "test": "wm_unittests" } + ], + "scripts": [ + { + "name": "gn_check", + "script": "gn_check.py" + }, + { + "args": [ + "chrome" + ], + "name": "gyp_flag_compare", + "script": "gyp_flag_compare.py" + } ] }, "Linux GN (dbg)": { diff --git a/testing/buildbot/tryserver.chromium.linux.json b/testing/buildbot/tryserver.chromium.linux.json index 767c5b4..0a6c686 100644 --- a/testing/buildbot/tryserver.chromium.linux.json +++ b/testing/buildbot/tryserver.chromium.linux.json @@ -11,7 +11,13 @@ "chrome_shell_apk", "mandoline:all" ], - "gtest_tests": [] + "gtest_tests": [], + "scripts": [ + { + "name": "gn_check", + "script": "gn_check.py" + } + ] }, "linux_chromium_gn_chromeos_dbg": { "additional_compile_targets": [ @@ -352,6 +358,19 @@ { "test": "wm_unittests" } + ], + "scripts": [ + { + "name": "gn_check", + "script": "gn_check.py" + }, + { + "args": [ + "chrome" + ], + "name": "gyp_flag_compare", + "script": "gyp_flag_compare.py" + } ] } } diff --git a/testing/scripts/gn_check.py b/testing/scripts/gn_check.py new file mode 100755 index 0000000..5feb166 --- /dev/null +++ b/testing/scripts/gn_check.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Wrap `gn check` for the bots. + +This script wraps the `gn check` command in the facade needed for the +'ScriptTest' step class of the chromium recipe_module +(see scripts/slave/recipe_modules/chromium/steps.py in the build repo). + +The script takes no arguments. +""" + + +import json +import os +import sys + + +import common + + +def main_run(args): + if sys.platform == 'win32': + exe = os.path.join(common.SRC_DIR, 'buildtools', 'win', 'gn.exe') + elif sys.platform == 'mac': + exe = os.path.join(common.SRC_DIR, 'buildtools', 'mac', 'gn') + else: + exe = os.path.join(common.SRC_DIR, 'buildtools', 'linux64', 'gn') + + rc = common.run_command([ + exe, + '--root=%s' % common.SRC_DIR, + 'check', + '//out/%s' % args.build_config_fs, + ]) + + # TODO(dpranke): Figure out how to get a list of failures out of gn check? + json.dump({ + 'valid': True, + 'failures': ['check_failed'] if rc else [], + }, args.output) + + return rc + + +def main_compile_targets(args): + json.dump([], args.output) + + +if __name__ == '__main__': + funcs = { + 'run': main_run, + 'compile_targets': main_compile_targets, + } + sys.exit(common.run_script(sys.argv[1:], funcs)) diff --git a/testing/scripts/gyp_flag_compare.py b/testing/scripts/gyp_flag_compare.py new file mode 100755 index 0000000..0b777d9 --- /dev/null +++ b/testing/scripts/gyp_flag_compare.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Wrap //tools/gn/bin/gyp_flag_compare.py for the bots. + +This script wraps the GN test script in the facade needed for the +'ScriptTest' step class of the chromium recipe_module +(see scripts/slave/recipe_modules/chromium/steps.py in the build repo. + +The script takes N arguments, for the N targets to compare flags for. +""" + +import json +import os +import sys + + +import common + + +def main_run(args): + rc = common.run_command([sys.executable, + os.path.join(common.SRC_DIR, + 'tools', 'gn', 'bin', + 'gyp_flag_compare.py')] + args.args) + + # TODO(dpranke): Figure out how to get a list of failures out of + # gyp_flag_compare? + json.dump({ + 'valid': True, + 'failures': ['compare_failed'] if rc else [], + }, args.output) + + return rc + + +def main_compile_targets(args): + # TODO(dpranke): Figure out how to get args.args plumbed through to here. + json.dump([], args.output) + + +if __name__ == '__main__': + funcs = { + 'run': main_run, + 'compile_targets': main_compile_targets, + } + sys.exit(common.run_script(sys.argv[1:], funcs)) |