summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/CHANGES.txt2
-rw-r--r--src/engine/SCons/Node/__init__.py2
-rw-r--r--test/errors.py15
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()