diff options
-rw-r--r-- | src/CHANGES.txt | 2 | ||||
-rw-r--r-- | src/engine/SCons/Node/__init__.py | 2 | ||||
-rw-r--r-- | test/errors.py | 15 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index e227920..265b19e 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -92,6 +92,8 @@ RELEASE 0.09 - - Add EnsurePythonVersion() and EnsureSConsVersion() functions. + - Fix the overly-verbose stack trace on ListBuilder build errors. + From sam th: - Dynamically check for the existence of utilities with which to diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py index 75a27c0..22bf949 100644 --- a/src/engine/SCons/Node/__init__.py +++ b/src/engine/SCons/Node/__init__.py @@ -112,6 +112,8 @@ class Node: raise except UserError: raise + except BuildError: + raise except: raise BuildError(self, "Exception", sys.exc_type, diff --git a/test/errors.py b/test/errors.py index 979c6e1..5f780f2 100644 --- a/test/errors.py +++ b/test/errors.py @@ -27,6 +27,9 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import TestCmd import TestSCons import string +import sys + +python = sys.executable test = TestSCons.TestSCons(match = TestCmd.match_re_dotall) @@ -113,4 +116,16 @@ test.run(arguments='-f SConstruct3', InternalError: error inside """, status=2) +test.write('build.py', ''' +import sys +sys.exit(2) +''') + +test.write('SConstruct', """ +env=Environment() +Default(env.Command(['one.out', 'two.out'], ['foo.in'], action=r'%s build.py')) +"""%python) + +test.run(status=2, stderr="scons: \\*\\*\\* \\[one.out\\] Error 2\n") + test.pass_test() |