help="Print various types of debugging information: "
"%s." % string.join(debug_options, ", "))
+ def opt_duplicate(option, opt, value, parser):
+ if not value in SCons.Node.FS.Valid_Duplicates:
+ raise OptionValueError("`%s' is not a valid duplication style." % value)
+ setattr(parser.values, 'duplicate', value)
+ # Set the duplicate style right away so it can affect linking
+ # of SConscript files.
+ SCons.Node.FS.set_duplicate(value)
+ self.add_option('--duplicate', action="callback", type="string",
+ callback=opt_duplicate, nargs=1, dest="duplicate",
+ help="Set the preferred duplication methods. Must be one of "
+ + string.join(SCons.Node.FS.Valid_Duplicates, ", "))
+
self.add_option('-f', '--file', '--makefile', '--sconstruct',
action="append", nargs=1,
help="Read FILE as the top-level SConstruct file.")
# "LOAD-AVERAGE."
# type="int",
help=SUPPRESS_HELP)
- def opt_duplicate(option, opt, value, parser):
- if not value in SCons.Node.FS.Valid_Duplicates:
- raise OptionValueError("`%s' is not a valid duplication style." % value)
- setattr(parser.values, 'duplicate', value)
- # Set the duplicate stye right away so it can affect linking
- # of SConscript files.
- SCons.Node.FS.set_duplicate(value)
- self.add_option('--duplicate', action="callback", type="string",
- callback=opt_duplicate, nargs=1, dest="duplicate",
- help="Set the preferred duplication methods. Must be one of "
- + string.join(SCons.Node.FS.Valid_Duplicates, ", "))
self.add_option('--list-derived', action="callback",
callback=opt_not_yet,
# help="Don't build; list files that would be built."
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-import TestSCons
+import copy
import string
import sys
+import TestSCons
+
test = TestSCons.TestSCons()
test.write('SConstruct', "")
test.fail_test(string.find(test.stdout(), '-H, --help-options') == -1)
test.fail_test(string.find(test.stdout(), '--debug=TYPE') == -1)
+# Validate that the help output lists the options in case-insensitive
+# alphabetical order.
+lines = string.split(test.stdout(), '\n')
+lines = filter(lambda x: x[:3] == ' -', lines)
+lines = map(lambda x: x[3:], lines)
+lines = map(lambda x: x[0] == '-' and x[1:] or x, lines)
+options = map(lambda x: string.split(x)[0], lines)
+options = map(lambda x: x[-1] == ',' and x[:-1] or x, options)
+lowered = map(lambda x: string.lower(x), options)
+sorted = copy.copy(lowered)
+sorted.sort()
+test.fail_test(lowered != sorted)
+
test.pass_test()