5 # Permission is hereby granted, free of charge, to any person obtaining
6 # a copy of this software and associated documentation files (the
7 # "Software"), to deal in the Software without restriction, including
8 # without limitation the rights to use, copy, modify, merge, publish,
9 # distribute, sublicense, and/or sell copies of the Software, and to
10 # permit persons to whom the Software is furnished to do so, subject to
11 # the following conditions:
13 # The above copyright notice and this permission notice shall be included
14 # in all copies or substantial portions of the Software.
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
17 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
18 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 __revision__
= "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
28 XXX Put a description of the test here.
33 test
= TestSCons
.TestSCons()
35 test
.write('SConstruct', """\
38 # Avoid tools= initialization in both the default and local construction
39 # environments, so we don't get substitution exceptions from platform-
40 # specific Tool modules.
41 DefaultEnvironment(tools = [])
42 env = Environment(tools = [], INDEX = [0, 1])
44 assert env.subst('$NAME') == ''
45 assert env.subst('${NAME}') == ''
46 assert env.subst('${INDEX[999]}') == ''
48 assert env.subst_list('$NAME') == [[]]
49 assert env.subst_list('${NAME}') == [[]]
50 assert env.subst_list('${INDEX[999]}') == [[]]
52 AllowSubstExceptions()
54 try: env.subst('$NAME')
55 except SCons.Errors.UserError as e: print(e)
56 else: raise Exception("did not catch expected SCons.Errors.UserError")
58 try: env.subst('${NAME}')
59 except SCons.Errors.UserError as e: print(e)
60 else: raise Exception("did not catch expected SCons.Errors.UserError")
62 try: env.subst('${INDEX[999]}')
63 except SCons.Errors.UserError as e: print(e)
64 else: raise Exception("did not catch expected SCons.Errors.UserError")
66 try: env.subst_list('$NAME')
67 except SCons.Errors.UserError as e: print(e)
68 else: raise Exception("did not catch expected SCons.Errors.UserError")
70 try: env.subst_list('${NAME}')
71 except SCons.Errors.UserError as e: print(e)
72 else: raise Exception("did not catch expected SCons.Errors.UserError")
74 try: env.subst_list('${INDEX[999]}')
75 except SCons.Errors.UserError as e: print(e)
76 else: raise Exception("did not catch expected SCons.Errors.UserError")
80 try: env.subst('${1/0}')
81 except SCons.Errors.UserError as e: print(e)
82 else: raise Exception("did not catch expected SCons.Errors.UserError")
84 try: env.subst_list('${1/0}')
85 except SCons.Errors.UserError as e: print(e)
86 else: raise Exception("did not catch expected SCons.Errors.UserError")
88 AllowSubstExceptions(ZeroDivisionError)
90 assert env.subst('${1/0}') == ''
91 assert env.subst_list('${1/0}') == [[]]
101 # indent-tabs-mode:nil
103 # vim: set expandtab tabstop=4 shiftwidth=4: