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

Unified Diff: infra/bots/infra_tests.py

Issue 2415193002: Add infra_tests.py, recipe, buildbotless bot (Closed)
Patch Set: Fix nanobench timestamp again 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
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..00201bcbe4d40723d12a5f7d632b36c3e043268d
--- /dev/null
+++ b/infra/bots/infra_tests.py
@@ -0,0 +1,78 @@
+#!/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.abspath(os.path.realpath(os.path.join(
+ os.path.dirname(os.path.abspath(__file__)))))
rmistry 2016/10/14 11:36:28 1. You already have os.path.abspath(__file__) I am
borenet 2016/10/14 13:03:46 Done.
+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_tests():
rmistry 2016/10/14 11:36:28 maybe unit_tests or python_unit_tests is a better
borenet 2016/10/14 13:03:46 Done.
+ 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_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()

Powered by Google App Engine
This is Rietveld 408576698