From: g0dil Date: Fri, 9 Oct 2009 14:03:09 +0000 (+0000) Subject: Add sub-project (senf/Ext) support to test_changes target X-Git-Url: http://g0dil.de/git?p=senf.git;a=commitdiff_plain;h=1469adc35a0c8bd8b5c7a505fedd823cc1a79a7f Add sub-project (senf/Ext) support to test_changes target git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1489 270642c3-0616-0410-b53a-bc976706d245 --- diff --git a/SConstruct b/SConstruct index de6f8aa..435bfb4 100644 --- a/SConstruct +++ b/SConstruct @@ -120,12 +120,7 @@ senfutil.parseArguments( ) if 'test_changes' in COMMAND_LINE_TARGETS and not env.has_key('only_tests'): - if os.popen("svnversion").read().strip() == "exported": - env['only_tests'] = " ".join(os.popen("git ls-files --modified").read().strip().split("\n")) - else: - env['only_tests'] = " ".join(l[7:] - for l in os.popen("svn status").read().rstrip().split("\n") - if l[0] == 'M') + env['only_tests'] = " ".join(x.abspath for x in SparseTestHack.findSCMChanges()) if env.has_key('only_tests') : env['sparse_tests'] = True Export('env') diff --git a/site_scons/SparseTestHack.py b/site_scons/SparseTestHack.py index 76e9ee2..f1a6f83 100644 --- a/site_scons/SparseTestHack.py +++ b/site_scons/SparseTestHack.py @@ -129,3 +129,22 @@ def build(env, accept_unknown_tests=False): if only_tests: raise SCons.Errors.StopError("Unknown unit tests (only_tests): %s." % ", ".join("`%s'" % x for x in only_tests)) + +def findSCMChanges(): + + def scmchanges(dir): + if os.popen("cd %s; svnversion" % dir.abspath).read().strip() == "exported": + return [ dir.Entry(x) + for x in os.popen("cd %s; git ls-files --modified" + % dir.abspath).read().strip().split("\n") ] + else: + return [ dir.Entry(l[7:]) + for l in os.popen("cd %s; svn status" + % dir.abspath).read().rstrip().split("\n") + if l[0] == 'M' ] + + changes=scmchanges(env.Dir('#')) + for dir in env.Dir('senf/Ext').glob("*"): + if isinstance(dir,SCons.Node.FS.Dir): + changes.extend(scmchanges(dir)) + return [ x for x in changes if not isinstance(x,SCons.Node.FS.Dir) ]