[jhbuild/desktop-testing: 2/6] [ldtp] Teach modtypes about the <ldtp> node



commit cc7ed7d27cd128af09a60fbb6073d6848b5eabb0
Author: John Carr <john carr unrouted co uk>
Date:   Tue May 19 10:43:21 2009 +0100

    [ldtp] Teach modtypes about the <ldtp> node
---
 jhbuild/modtypes/__init__.py  |   24 ++++++++++++++++++++++--
 jhbuild/modtypes/ant.py       |   10 ++++++----
 jhbuild/modtypes/autotools.py |    9 +++++----
 jhbuild/modtypes/cmake.py     |    9 +++++----
 jhbuild/modtypes/distutils.py |    9 +++++----
 jhbuild/modtypes/tarball.py   |    5 +++--
 jhbuild/modtypes/waf.py       |   10 ++++++----
 jhbuild/utils/ldtp.py         |   13 -------------
 8 files changed, 52 insertions(+), 37 deletions(-)

diff --git a/jhbuild/modtypes/__init__.py b/jhbuild/modtypes/__init__.py
index 5af1374..4893710 100644
--- a/jhbuild/modtypes/__init__.py
+++ b/jhbuild/modtypes/__init__.py
@@ -116,16 +116,31 @@ def get_branch(node, repositories, default_repo, config):
 
     return repo.branch_from_xml(name, childnode, repositories, default_repo)
 
+def get_ldtp_helper(node):
+    app = node.getAttribute("id")
+
+    for child in node.childNodes:
+        if child.nodeType == child.ELEMENT_NODE and child.nodeName == 'ldtp':
+            break
+    else:
+        return None
+
+    if child.hasAttribute("application"):
+        app = ldtpnode.getAttribute("application")
+
+    return LDTPHelper(app)
+
 
 class Package:
     type = 'base'
     PHASE_START = 'start'
     PHASE_DONE  = 'done'
-    def __init__(self, name, dependencies = [], after = [], suggests = []):
+    def __init__(self, name, dependencies = [], after = [], suggests = [], ldtp=None):
         self.name = name
         self.dependencies = dependencies
         self.after = after
         self.suggests = suggests
+        self.ldtp = ldtp
         self.tags = []
         self.moduleset_name = None
 
@@ -211,6 +226,10 @@ class Package:
             return True
         return False
 
+    def do_ldtp_test(self, buildscript):
+        buildscript.set_action(_('Running %s UI tests') % self.name)
+        self.ldtp.execute(buildscript)
+
     def xml_tag_and_attrs(self):
         """Return a (tag, attrs) pair, describing how to serialize this
         module.
@@ -268,7 +287,8 @@ class MetaModule(Package):
 def parse_metamodule(node, config, url, repos, default_repo):
     id = node.getAttribute('id')
     dependencies, after, suggests = get_dependencies(node)
-    return MetaModule(id, dependencies=dependencies, after=after, suggests=suggests)
+    ldtp = get_ltp_helper(node)
+    return MetaModule(id, dependencies=dependencies, after=after, suggests=suggests, ldtp=ldtp)
 register_module_type('metamodule', parse_metamodule)
 
 
diff --git a/jhbuild/modtypes/ant.py b/jhbuild/modtypes/ant.py
index b662711..0fdcb62 100644
--- a/jhbuild/modtypes/ant.py
+++ b/jhbuild/modtypes/ant.py
@@ -24,7 +24,7 @@ import os
 
 from jhbuild.errors import BuildStateError, CommandError
 from jhbuild.modtypes import \
-     Package, get_dependencies, get_branch, register_module_type
+     Package, get_dependencies, get_branch, get_ldtp_helper, register_module_type
 from jhbuild.commands.sanitycheck import inpath
 
 __all__ = [ 'AntModule' ]
@@ -40,8 +40,8 @@ class AntModule(Package):
 
     def __init__(self, name, branch,
                  dependencies=[], after=[],
-                 supports_non_srcdir_builds=False):
-        Package.__init__(self, name, dependencies, after)
+                 supports_non_srcdir_builds=False, ldtp=None):
+        Package.__init__(self, name, dependencies, after, ldtp)
         self.branch = branch
         self.supports_non_srcdir_builds = supports_non_srcdir_builds
 
@@ -109,9 +109,11 @@ def parse_ant(node, config, uri, repositories, default_repo):
             (node.getAttribute('supports-non-srcdir-builds') != 'no')
     dependencies, after, suggests = get_dependencies(node)
     branch = get_branch(node, repositories, default_repo)
+    ldtp = get_ldtp_helper(node)
 
     return AntModule(id, branch,
                            dependencies=dependencies, after=after,
-                           supports_non_srcdir_builds=supports_non_srcdir_builds)
+                           supports_non_srcdir_builds=supports_non_srcdir_builds,
+                           ldtp=ldtp)
 
 register_module_type('ant', parse_ant)
diff --git a/jhbuild/modtypes/autotools.py b/jhbuild/modtypes/autotools.py
index 4be49a3..d9a6c1c 100644
--- a/jhbuild/modtypes/autotools.py
+++ b/jhbuild/modtypes/autotools.py
@@ -26,7 +26,7 @@ import stat
 
 from jhbuild.errors import FatalError, BuildStateError, CommandError
 from jhbuild.modtypes import \
-     Package, get_dependencies, get_branch, register_module_type
+     Package, get_dependencies, get_branch, get_ldtp_helper, register_module_type
 
 __all__ = [ 'AutogenModule' ]
 
@@ -54,8 +54,8 @@ class AutogenModule(Package):
                  autogen_sh='autogen.sh',
                  makefile='Makefile',
                  autogen_template=None,
-                 check_target=True):
-        Package.__init__(self, name, dependencies, after, suggests)
+                 check_target=True, ldtp=None):
+        Package.__init__(self, name, dependencies, after, suggests, ldtp)
         self.branch = branch
         self.autogenargs = autogenargs
         self.makeargs    = makeargs
@@ -367,6 +367,7 @@ def parse_autotools(node, config, uri, repositories, default_repo):
 
     dependencies, after, suggests = get_dependencies(node)
     branch = get_branch(node, repositories, default_repo, config)
+    ldtp = get_ldtp_helper(node)
 
     return AutogenModule(id, branch, autogenargs, makeargs,
                          makeinstallargs=makeinstallargs,
@@ -378,6 +379,6 @@ def parse_autotools(node, config, uri, repositories, default_repo):
                          autogen_sh=autogen_sh,
                          makefile=makefile,
                          autogen_template=autogen_template,
-                         check_target=check_target)
+                         check_target=check_target, ldtp=ldtp)
 register_module_type('autotools', parse_autotools)
 
diff --git a/jhbuild/modtypes/cmake.py b/jhbuild/modtypes/cmake.py
index 421be2d..21219b2 100644
--- a/jhbuild/modtypes/cmake.py
+++ b/jhbuild/modtypes/cmake.py
@@ -23,7 +23,7 @@ import os
 
 from jhbuild.errors import BuildStateError
 from jhbuild.modtypes import \
-     Package, get_dependencies, get_branch, register_module_type
+     Package, get_dependencies, get_branch, get_ldtp_helper, register_module_type
 
 __all__ = [ 'CMakeModule' ]
 
@@ -38,8 +38,8 @@ class CMakeModule(Package):
     PHASE_DIST = 'dist'
     PHASE_INSTALL = 'install'
 
-    def __init__(self, name, branch, dependencies=[], after=[], suggests=[]):
-        Package.__init__(self, name, dependencies, after, suggests)
+    def __init__(self, name, branch, dependencies=[], after=[], suggests=[], ldtp=None):
+        Package.__init__(self, name, dependencies, after, suggests, ldtp)
         self.branch = branch
 
     def get_srcdir(self, buildscript):
@@ -113,9 +113,10 @@ def parse_cmake(node, config, uri, repositories, default_repo):
     id = node.getAttribute('id')
     dependencies, after, suggests = get_dependencies(node)
     branch = get_branch(node, repositories, default_repo, config)
+    ldtp = get_ldtp_helper(node)
 
     return CMakeModule(id, branch, dependencies = dependencies, after = after,
-            suggests = suggests)
+            suggests = suggests, ldtp = ldtp)
 
 register_module_type('cmake', parse_cmake)
 
diff --git a/jhbuild/modtypes/distutils.py b/jhbuild/modtypes/distutils.py
index b39f151..3fb13d3 100644
--- a/jhbuild/modtypes/distutils.py
+++ b/jhbuild/modtypes/distutils.py
@@ -23,7 +23,7 @@ import os
 
 from jhbuild.errors import BuildStateError
 from jhbuild.modtypes import \
-     Package, get_dependencies, get_branch, register_module_type
+     Package, get_dependencies, get_branch, get_ldtp_helper, register_module_type
 
 __all__ = [ 'DistutilsModule' ]
 
@@ -39,8 +39,8 @@ class DistutilsModule(Package):
 
     def __init__(self, name, branch,
                  dependencies = [], after = [], suggests = [],
-                 supports_non_srcdir_builds = True):
-        Package.__init__(self, name, dependencies, after, suggests)
+                 supports_non_srcdir_builds = True, ldtp=None):
+        Package.__init__(self, name, dependencies, after, suggests, ldtp)
         self.branch = branch
         self.supports_non_srcdir_builds = supports_non_srcdir_builds
 
@@ -107,10 +107,11 @@ def parse_distutils(node, config, uri, repositories, default_repo):
             (node.getAttribute('supports-non-srcdir-builds') != 'no')
     dependencies, after, suggests = get_dependencies(node)
     branch = get_branch(node, repositories, default_repo, config)
+    ldtp = get_ldtp_helper(node)
 
     return DistutilsModule(id, branch,
             dependencies = dependencies, after = after,
             suggests = suggests,
-            supports_non_srcdir_builds = supports_non_srcdir_builds)
+            supports_non_srcdir_builds = supports_non_srcdir_builds, ldtp=ldtp)
 register_module_type('distutils', parse_distutils)
 
diff --git a/jhbuild/modtypes/tarball.py b/jhbuild/modtypes/tarball.py
index ca97b07..2deac0d 100644
--- a/jhbuild/modtypes/tarball.py
+++ b/jhbuild/modtypes/tarball.py
@@ -22,7 +22,7 @@ __metaclass__ = type
 import sys
 import logging
 
-from jhbuild.modtypes import register_module_type, get_dependencies
+from jhbuild.modtypes import register_module_type, get_dependencies, get_ldtp_helper
 
 def parse_tarball(node, config, uri, repositories, default_repo):
     name = node.getAttribute('id')
@@ -79,6 +79,7 @@ def parse_tarball(node, config, uri, repositories, default_repo):
     autogenargs = autogenargs.replace('--enable-maintainer-mode', '')
 
     dependencies, after, suggests = get_dependencies(node)
+    ldtp = get_ldtp_helper(node)
 
     from autotools import AutogenModule
     from jhbuild.versioncontrol.tarball import TarballBranch, TarballRepository
@@ -96,6 +97,6 @@ def parse_tarball(node, config, uri, repositories, default_repo):
             dependencies, after, suggests,
             supports_non_srcdir_builds = supports_non_srcdir_builds,
             skip_autogen = False, autogen_sh = 'configure',
-            makefile = makefile)
+            makefile = makefile, ldtp=ldtp)
 
 register_module_type('tarball', parse_tarball)
diff --git a/jhbuild/modtypes/waf.py b/jhbuild/modtypes/waf.py
index e01dc52..6319148 100644
--- a/jhbuild/modtypes/waf.py
+++ b/jhbuild/modtypes/waf.py
@@ -26,7 +26,8 @@ import re
 
 from jhbuild.errors import FatalError, BuildStateError, CommandError
 from jhbuild.modtypes import \
-     Package, get_dependencies, get_branch, register_module_type
+     Package, get_dependencies, get_branch, register_module_type, \
+     get_ldtp_helper
 from jhbuild.commands.sanitycheck import inpath
 
 __all__ = [ 'WafModule' ]
@@ -45,8 +46,8 @@ class WafModule(Package):
     PHASE_INSTALL        = 'install'
 
     def __init__(self, name, branch, dependencies=[], after=[], suggests=[],
-                 waf_cmd='waf'):
-        Package.__init__(self, name, dependencies, after, suggests)
+                 waf_cmd='waf', ldtp=None):
+        Package.__init__(self, name, dependencies, after, suggests, ldtp)
         self.branch = branch
         self.waf_cmd = waf_cmd
 
@@ -165,8 +166,9 @@ def parse_waf(node, config, uri, repositories, default_repo):
     # override revision tag if requested.
     dependencies, after, suggests = get_dependencies(node)
     branch = get_branch(node, repositories, default_repo, config)
+    ldtp = get_ldtp_helper(node)
 
     return WafModule(module_id, branch, dependencies=dependencies, after=after,
-            suggests=suggests, waf_cmd=waf_cmd)
+            suggests=suggests, waf_cmd=waf_cmd, ldtp=ldtp)
 
 register_module_type('waf', parse_waf)
diff --git a/jhbuild/utils/ldtp.py b/jhbuild/utils/ldtp.py
index 9ee93d1..0294445 100644
--- a/jhbuild/utils/ldtp.py
+++ b/jhbuild/utils/ldtp.py
@@ -42,17 +42,4 @@ class LDTPHelper(object):
         buildscript.execute(testargs)
 
 
-def get_ldtp_helper(node):
-    app = node.getAttribute("id")
-
-    for child in node.childNodes:
-        if child.nodeType == child.ELEMENT_NODE and child.nodeName == 'ldtp':
-            break
-    else:
-        return None
-
-    if child.hasAttribute("application"):
-        app = ldtpnode.getAttribute("application")
-
-    return LDTPHelper(app)
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]