summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Action.py5
-rw-r--r--src/engine/SCons/ActionTests.py7
2 files changed, 11 insertions, 1 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py
index c95644a..c8d62cd 100644
--- a/src/engine/SCons/Action.py
+++ b/src/engine/SCons/Action.py
@@ -412,7 +412,10 @@ class CommandGeneratorAction(ActionBase):
source = [source]
rsources = map(rfile, source)
act = self.__generate(target, source, env, 0)
- return act.strfunction(target, rsources, env)
+ if act.strfunction:
+ return act.strfunction(target, rsources, env)
+ else:
+ return None
def __str__(self):
try:
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index b3d7e8c..f699e61 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -1006,6 +1006,13 @@ class CommandGeneratorActionTestCase(unittest.TestCase):
s = a.strfunction([], [], env=Environment())
assert s == "sf was called", s
+ def f(target, source, env, for_signature, self=self):
+ def null(target, source, env):
+ pass
+ return SCons.Action.Action(null, strfunction=None)
+ a = SCons.Action.CommandGeneratorAction(f)
+ s = a.strfunction([], [], env=Environment())
+
def test_execute(self):
"""Test executing a command generator Action
"""