4 # Copyright The SCons Foundation
6 # Permission is hereby granted, free of charge, to any person obtaining
7 # a copy of this software and associated documentation files (the
8 # "Software"), to deal in the Software without restriction, including
9 # without limitation the rights to use, copy, modify, merge, publish,
10 # distribute, sublicense, and/or sell copies of the Software, and to
11 # permit persons to whom the Software is furnished to do so, subject to
12 # the following conditions:
14 # The above copyright notice and this permission notice shall be included
15 # in all copies or substantial portions of the Software.
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
18 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
19 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 Verify behavior of the -H and --help-options options.
34 test
= TestSCons
.TestSCons()
36 test
.write('SConstruct', "DefaultEnvironment(tools=[])\n")
38 test
.run(arguments
= '-H')
44 test
.must_contain_all_lines(test
.stdout(), expect
)
46 # Validate that the help output lists the options in case-insensitive
49 # Don't include in the sorted comparison the options that are ignored
50 # for compatibility. They're all printed at the top of the list.
51 ignored_re
= re
.compile('.*Ignored for compatibility\\.\n', re
.S
)
52 stdout
= ignored_re
.sub('', test
.stdout())
54 lines
= stdout
.split('\n')
55 lines
= [x
for x
in lines
if x
[:3] == ' -']
56 lines
= [x
[3:] for x
in lines
]
57 lines
= [x
[0] == '-' and x
[1:] or x
for x
in lines
]
58 options
= [x
.split()[0] for x
in lines
]
59 options
= [x
[-1] == ',' and x
[:-1] or x
for x
in options
]
60 lowered
= [x
.lower() for x
in options
]
61 ordered
= sorted(lowered
)
62 if lowered
!= ordered
:
63 print("lowered =", lowered
)
64 print("sorted =", ordered
)
72 # indent-tabs-mode:nil
74 # vim: set expandtab tabstop=4 shiftwidth=4: