Fix some bad exceptions in Defaults.py (Anthony Roach)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 13 May 2002 03:25:56 +0000 (03:25 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 13 May 2002 03:25:56 +0000 (03:25 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@371 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Defaults.py
test/SharedLibrary.py

index a7b0dc0432ccebbe8b8932f8f155b127d570e7bd..2259f40433cb84dd13a64e6d6c72cc5abec5a60b 100644 (file)
@@ -69,7 +69,7 @@ class SharedCmdGenerator:
         for src in source:
             try:
                 if src.attributes.shared != shared:
-                    raise UserError("Source file: %s must be built with shared=%s in order to be compatible with the selected target." % (src, str(shared)))
+                    raise SCons.Errors.UserError("Source file: %s must be built with shared=%s in order to be compatible with the selected target." % (src, str(shared)))
             except AttributeError:
                 pass
         for t in target:
@@ -247,7 +247,7 @@ def win32LibEmitter(target, source, env, shared=0,
                 dll = tgt
                 break
         if not dll:
-            raise UserError("A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX"))
+            raise SCons.Errors.UserError("A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX"))
         
         if env.has_key("WIN32_INSERT_DEF") and \
            env["WIN32_INSERT_DEF"] and \
index d00f5951beaef0550e465ecc1904cf8fcd37f943..8675c4b4f1f4f9f47a7a29cb0ce0558746731246 100644 (file)
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
 import TestSCons
+import TestCmd
 import os
 
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match=TestCmd.match_re)
 
 test.write('SConstruct', """
 env=Environment(WIN32_INSERT_DEF=1)
@@ -39,6 +40,24 @@ env.Library(target = 'foo3', source = ['f3a.c', 'f3b.c', 'f3c.c'], shared=1)
 env2.Program(target = 'prog', source = 'prog.c')
 """)
 
+test.write('SConstructFoo', """
+env=Environment()
+obj = env.Object('foo', 'foo.c', shared=0)
+Default(env.Library(target = 'foo', source = obj, shared=1))
+""")
+
+test.write('foo.c', r"""
+#include <stdio.h>
+
+void
+f1(void)
+{
+       printf("foo.c\n");
+        fflush(stdout);
+}
+""")
+
+
 test.write('f1.c', r"""
 #include <stdio.h>
 
@@ -162,4 +181,10 @@ if os.name == 'posix':
 test.run(program = test.workpath('prog'),
          stdout = "f1.c\nf2a.c\nf2b.c\nf2c.c\nf3a.c\nf3b.c\nf3c.c\nprog.c\n")
 
+test.run(arguments = '-f SConstructFoo', status=2, stderr='''
+SCons error: Source file: foo.o must be built with shared=1 in order to be compatible with the selected target.
+File ".*", line .*, in .*
+'''
+)
+
 test.pass_test()