Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: infra/bots/infra_tests.py

Issue 2415193002: Add infra_tests.py, recipe, buildbotless bot (Closed)
Patch Set: Fixes Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « infra/bots/infra_skia.isolate ('k') | infra/bots/recipe_modules/vars/api.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: infra/bots/infra_tests.py
diff --git a/infra/bots/infra_tests.py b/infra/bots/infra_tests.py
new file mode 100755
index 0000000000000000000000000000000000000000..779ea8d83b1587e63f8a517b98c912b525b74a16
--- /dev/null
+++ b/infra/bots/infra_tests.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+
+"""Run all infrastructure-related tests."""
+
+
+import os
+import subprocess
+import sys
+
+
+INFRA_BOTS_DIR = os.path.dirname(os.path.realpath(__file__))
+SKIA_DIR = os.path.abspath(os.path.join(INFRA_BOTS_DIR, os.pardir, os.pardir))
+
+
+def test(cmd, cwd):
+ try:
+ subprocess.check_output(cmd, cwd=cwd, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ return e.output
+
+
+def python_unit_tests():
+ return test(
+ ['python', '-m', 'unittest', 'discover', '-s', '.', '-p', '*_test.py'],
+ INFRA_BOTS_DIR)
+
+
+def recipe_simulation_test():
+ return test(
+ ['python', os.path.join(INFRA_BOTS_DIR, 'recipes.py'), 'simulation_test'],
+ SKIA_DIR)
+
+
+def gen_tasks_test():
+ cmd = ['go', 'run', 'gen_tasks.go', '--test']
+ try:
+ output = test(cmd, INFRA_BOTS_DIR)
+ except OSError:
+ return ('Failed to run "%s"; do you have Go installed on your machine?'
+ % ' '.join(cmd))
+ if output and 'cannot find package "go.skia.org/infra' in output:
+ return ('Failed to run gen_tests.go:\n\n%s\nMaybe you need to run:\n\n'
+ '$ go get -u go.skia.org/infra/...' % output)
+ return output
+
+
+def main():
+ tests = (
+ python_unit_tests,
+ recipe_simulation_test,
+ gen_tasks_test,
+ )
+ errs = []
+ for t in tests:
+ err = t()
+ if err:
+ errs.append(err)
+
+ if len(errs) > 0:
+ print >> sys.stderr, 'Test failures:\n'
+ for err in errs:
+ print >> sys.stderr, '=============================='
+ print >> sys.stderr, err
+ print >> sys.stderr, '=============================='
+ sys.exit(1)
+
+ print 'All tests passed!'
+
+
+if __name__ == '__main__':
+ main()
« no previous file with comments | « infra/bots/infra_skia.isolate ('k') | infra/bots/recipe_modules/vars/api.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698