summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/ActionTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-04-17 12:34:55 (GMT)
committerSteven Knight <knight@baldmt.com>2004-04-17 12:34:55 (GMT)
commit2b875f31e86ca90efb76fd81009876fc57266d31 (patch)
treee89b0387d2448f33c7a1dcf1cc47d12f584787fa /src/engine/SCons/ActionTests.py
parente29523e3a4612eb77695d921d2bbbfbb6f2dd2e0 (diff)
downloadSCons-2b875f31e86ca90efb76fd81009876fc57266d31.zip
SCons-2b875f31e86ca90efb76fd81009876fc57266d31.tar.gz
SCons-2b875f31e86ca90efb76fd81009876fc57266d31.tar.bz2
Add the highly anticipated --debug=explain option to provide build reasoning.
Diffstat (limited to 'src/engine/SCons/ActionTests.py')
-rw-r--r--src/engine/SCons/ActionTests.py73
1 files changed, 72 insertions, 1 deletions
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index 5672dac..a273607 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -465,6 +465,44 @@ class CommandActionTestCase(unittest.TestCase):
s = str(act)
assert s == "['xyzzy', '$TARGET', '$SOURCE', '$TARGETS', '$SOURCES']", s
+ def test_genstring(self):
+ """Test the genstring() method for command Actions
+ """
+
+ env = Environment()
+ t1 = DummyNode('t1')
+ t2 = DummyNode('t2')
+ s1 = DummyNode('s1')
+ s2 = DummyNode('s2')
+ act = SCons.Action.CommandAction('xyzzy $TARGET $SOURCE')
+ expect = 'xyzzy $TARGET $SOURCE'
+ s = act.genstring([], [], env)
+ assert s == expect, s
+ s = act.genstring([t1], [s1], env)
+ assert s == expect, s
+ s = act.genstring([t1, t2], [s1, s2], env)
+ assert s == expect, s
+
+ act = SCons.Action.CommandAction('xyzzy $TARGETS $SOURCES')
+ expect = 'xyzzy $TARGETS $SOURCES'
+ s = act.genstring([], [], env)
+ assert s == expect, s
+ s = act.genstring([t1], [s1], env)
+ assert s == expect, s
+ s = act.genstring([t1, t2], [s1, s2], env)
+ assert s == expect, s
+
+ act = SCons.Action.CommandAction(['xyzzy',
+ '$TARGET', '$SOURCE',
+ '$TARGETS', '$SOURCES'])
+ expect = "['xyzzy', '$TARGET', '$SOURCE', '$TARGETS', '$SOURCES']"
+ s = act.genstring([], [], env)
+ assert s == expect, s
+ s = act.genstring([t1], [s1], env)
+ assert s == expect, s
+ s = act.genstring([t1, t2], [s1, s2], env)
+ assert s == expect, s
+
def test_strfunction(self):
"""Test fetching the string representation of command Actions
"""
@@ -829,6 +867,19 @@ class CommandGeneratorActionTestCase(unittest.TestCase):
s = str(a)
assert s == 'FOO', s
+ def test_genstring(self):
+ """Test the command generator Action genstring() method
+ """
+ def f(target, source, env, for_signature, self=self):
+ dummy = env['dummy']
+ self.dummy = dummy
+ return "$FOO $TARGET $SOURCE $TARGETS $SOURCES"
+ a = SCons.Action.CommandGeneratorAction(f)
+ self.dummy = 0
+ s = a.genstring([], [], env=Environment(FOO='xyzzy', dummy=1))
+ assert self.dummy == 1, self.dummy
+ assert s == "$FOO $TARGET $SOURCE $TARGETS $SOURCES", s
+
def test_strfunction(self):
"""Test the command generator Action string function
"""
@@ -1079,7 +1130,7 @@ class ListActionTestCase(unittest.TestCase):
assert g == [l[1]], g
def test___str__(self):
- """Test the __str__() method ffor a list of subsidiary Actions
+ """Test the __str__() method for a list of subsidiary Actions
"""
def f(target,source,env):
pass
@@ -1089,6 +1140,17 @@ class ListActionTestCase(unittest.TestCase):
s = str(a)
assert s == "f(env, target, source)\ng(env, target, source)\nXXX\nf(env, target, source)", s
+ def test_genstring(self):
+ """Test the genstring() method for a list of subsidiary Actions
+ """
+ def f(target,source,env):
+ pass
+ def g(target,source,env):
+ pass
+ a = SCons.Action.ListAction([f, g, "XXX", f])
+ s = a.genstring([], [], Environment())
+ assert s == "f(env, target, source)\ng(env, target, source)\nXXX\nf(env, target, source)", s
+
def test_strfunction(self):
"""Test the string function for a list of subsidiary Actions
"""
@@ -1173,6 +1235,15 @@ class LazyActionTestCase(unittest.TestCase):
s = a.strfunction([], [], env=Environment(BAR=f, s=self))
assert s == "f([], [])", s
+ def test_genstring(self):
+ """Test the lazy-evaluation Action genstring() method
+ """
+ def f(target, source, env):
+ pass
+ a = SCons.Action.Action('$BAR')
+ s = a.genstring([], [], env=Environment(BAR=f, s=self))
+ assert s == "f(env, target, source)", s
+
def test_execute(self):
"""Test executing a lazy-evaluation Action
"""