Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-12-08 14:54:01 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-12-08 14:54:01 (GMT)
commit3f05816ea746124ca2b91842ba5f8bb5175c2068 (patch)
tree65b60ba9fc590c965d172545bf653b84205267ff /devbot
parentce2d2cdd3372d4a58806f0a178f0a410357f96a2 (diff)
Add per module tests to the check target
Diffstat (limited to 'devbot')
-rw-r--r--devbot/config.py1
-rw-r--r--devbot/test.py44
2 files changed, 45 insertions, 0 deletions
diff --git a/devbot/config.py b/devbot/config.py
index 9cce430..ed0f355 100644
--- a/devbot/config.py
+++ b/devbot/config.py
@@ -37,6 +37,7 @@ class Module:
self.auto_install = info.get("auto-install", False)
self.options = info.get("options", [])
self.options_evaluated = info.get("options_evaluated", [])
+ self.has_tests = info.get("has_tests", False)
if get_pref("BUILD_IN_SOURCE"):
self.out_of_source = False
diff --git a/devbot/test.py b/devbot/test.py
new file mode 100644
index 0000000..eec2afc
--- /dev/null
+++ b/devbot/test.py
@@ -0,0 +1,44 @@
+import os
+import subprocess
+
+from devbot import config
+from devbot import environ
+from devbot import command
+from devbot import xvfb
+
+def test_one(module_name):
+ environ.setup()
+
+ for module in config.load_modules():
+ if module.name == module_name:
+ return _test_module(module)
+
+ return False
+
+def test():
+ environ.setup()
+
+ modules = config.load_modules()
+ for module in modules:
+ print module.name
+ if not _test_module(module):
+ return False
+
+ return True
+
+def _test_module(module):
+ result = True
+
+ if module.has_tests:
+ os.chdir(module.get_build_dir())
+
+ xvfb_proc, orig_display = xvfb.start()
+
+ try:
+ command.run(["make", "test"])
+ except subprocess.CalledProcessError:
+ result = False
+
+ xvfb.stop(xvfb_proc, orig_display)
+
+ return result