Error message if no SConstruct file.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 21 Sep 2001 02:20:19 +0000 (02:20 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 21 Sep 2001 02:20:19 +0000 (02:20 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@64 fdb21ef1-2011-0410-befe-b5e4ea1792b1

etc/TestSCons.py
src/script/scons.py
test/SConstruct.py
test/errors.py

index 49c8f21d2e659615af610b5007c0ee707f066e3c..b6f2c68cbc5fb5490137039bf33718e1859b2edf 100644 (file)
@@ -94,7 +94,7 @@ class TestSCons(TestCmd.TestCmd):
            print "STDERR ============"
            print self.stderr()
            raise TestFailed
-       if stdout and not self.match(self.stdout(), stdout):
+       if not stdout is None and not self.match(self.stdout(), stdout):
            print "Expected STDOUT =========="
            print stdout
            print "Actual STDOUT ============"
@@ -104,7 +104,7 @@ class TestSCons(TestCmd.TestCmd):
                print "STDERR ==================="
                print stderr
            raise TestFailed
-       if stderr and not self.match(self.stderr(), stderr):
+       if not stderr is None and not self.match(self.stderr(), stderr):
            print "Expected STDERR =========="
            print stderr
            print "Actual STDERR ============"
index 9dc41e65f18e5bdc68aca963f2f20ce155a1050c..51593eb92209931041eced0fd4bf24974f420a0b 100644 (file)
@@ -82,7 +82,6 @@ def _scons_user_error(e):
     """Handle user errors. Print out a message and a description of the
     error, along with the line number and routine where it occured.
     """
-    print 'user error'
     etype, value, tb = sys.exc_info()
     while tb.tb_next is not None:
         tb = tb.tb_next
@@ -499,11 +498,14 @@ def main():
                 Scripts.append(file)
                 break
 
-    if local_help and not Scripts:
-       # They specified -h, but there's no SConstruct.  Give them
-       # the options usage before we try to read it and fail.
-       PrintUsage()
-       sys.exit(0)
+    if not Scripts:
+       if local_help:
+           # There's no SConstruct, but they specified -h.  Give them
+           # the options usage before we try to read it and fail.
+           PrintUsage()
+           sys.exit(0)
+       else:
+           raise UserError, "No SConstruct file found."
 
     # XXX The commented-out code here adds any "scons" subdirs in anything
     # along sys.path to sys.path.  This was an attempt at setting up things
index 34710a32109758b7d536804faf3303a32574965c..8837b62ddeb0801b90b7687537411403dcf526ad 100644 (file)
@@ -6,6 +6,12 @@ import TestSCons
 
 test = TestSCons.TestSCons()
 
+test.run(stdout = "",
+       stderr = """
+SCons error: No SConstruct file found.
+File "\S+scons(\.py)?", line \d+, in main
+""")
+
 wpath = test.workpath()
 
 test.write('sconstruct', """
index 3c8663bc0ed5c6bdd0d319cd8c45da69227e9efc..f94ebe5cd3ec08ba4d515cece63711a909106bcf 100644 (file)
@@ -10,7 +10,9 @@ test.write('SConstruct1', """
 a ! x
 """)
 
-test.run(arguments='-f SConstruct1', stderr = """  File "SConstruct1", line 2
+test.run(arguments='-f SConstruct1',
+        stdout = "",
+        stderr = """  File "SConstruct1", line 2
 
     a ! x
 
@@ -24,7 +26,10 @@ SyntaxError: invalid syntax
 test.write('SConstruct2', """
 raise UserError, 'Depends() require both sources and targets.'
 """)
-test.run(arguments='-f SConstruct2', stderr = """
+
+test.run(arguments='-f SConstruct2',
+        stdout = "",
+        stderr = """
 SCons error: Depends\(\) require both sources and targets.
 File "SConstruct2", line 2, in \?
 """)
@@ -32,7 +37,10 @@ File "SConstruct2", line 2, in \?
 test.write('SConstruct3', """
 raise InternalError, 'error inside'
 """)
-test.run(arguments='-f SConstruct3', stderr = r"""Traceback \((most recent call|innermost) last\):
+
+test.run(arguments='-f SConstruct3',
+        stdout = "other errors\n",
+        stderr = r"""Traceback \((most recent call|innermost) last\):
   File ".*scons(\.py)?", line \d+, in \?
     main\(\)
   File ".*scons(\.py)?", line \d+, in main