summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-09-09 21:47:42 (GMT)
committerSteven Knight <knight@baldmt.com>2001-09-09 21:47:42 (GMT)
commitc47a0a15e0ec5f35a0ab7ed8ed142b5bcaaf4ca8 (patch)
tree148df137dfa88f54b75a2fb9472b9f5e657289a6
parent146a6ca32ebf381e6fee5b3210c58685d984402e (diff)
downloadSCons-c47a0a15e0ec5f35a0ab7ed8ed142b5bcaaf4ca8.zip
SCons-c47a0a15e0ec5f35a0ab7ed8ed142b5bcaaf4ca8.tar.gz
SCons-c47a0a15e0ec5f35a0ab7ed8ed142b5bcaaf4ca8.tar.bz2
Add command-line processing for all options (with tests).
-rw-r--r--doc/man/options.sgml81
-rw-r--r--src/scons.py374
-rw-r--r--test/option--C.py26
-rw-r--r--test/option--H.py20
-rw-r--r--test/option--I.py26
-rw-r--r--test/option--R.py26
-rw-r--r--test/option--S.py31
-rw-r--r--test/option--W.py36
-rw-r--r--test/option--Y.py26
-rw-r--r--test/option--cd.py26
-rw-r--r--test/option--cf.py26
-rw-r--r--test/option--cs.py21
-rw-r--r--test/option--la.py21
-rw-r--r--test/option--ld.py21
-rw-r--r--test/option--lw.py21
-rw-r--r--test/option--npd.py21
-rw-r--r--test/option--override.py21
-rw-r--r--test/option--random.py21
-rw-r--r--test/option--wf.py21
-rw-r--r--test/option--wuv.py21
-rw-r--r--test/option-b.py21
-rw-r--r--test/option-c.py31
-rw-r--r--test/option-d.py21
-rw-r--r--test/option-e.py26
-rw-r--r--test/option-h.py24
-rw-r--r--test/option-i.py26
-rw-r--r--test/option-k.py26
-rw-r--r--test/option-l.py31
-rw-r--r--test/option-m.py21
-rw-r--r--test/option-n.py41
-rw-r--r--test/option-o.py31
-rw-r--r--test/option-p.py21
-rw-r--r--test/option-q.py26
-rw-r--r--test/option-r.py26
-rw-r--r--test/option-s.py31
-rw-r--r--test/option-t.py26
-rw-r--r--test/option-u.py21
-rw-r--r--test/option-v.py26
-rw-r--r--test/option-w.py26
39 files changed, 1341 insertions, 48 deletions
diff --git a/doc/man/options.sgml b/doc/man/options.sgml
index 2b824b5..a231908 100644
--- a/doc/man/options.sgml
+++ b/doc/man/options.sgml
@@ -134,9 +134,11 @@
</listitem>
</varlistentry>
+ <!--
+
<varlistentry>
<term>
- <option>--debug</option>=<replaceable>flags</replaceable>
+ <option>- -debug</option>=<replaceable>flags</replaceable>
</term>
<listitem>
<para>
@@ -147,9 +149,13 @@
</listitem>
</varlistentry>
+ -->
+
+ <!--
+
<varlistentry>
<term> <option>-e</option>,
- <option>--environment-overrides</option>
+ <option>- -environment-overrides</option>
</term>
<listitem>
<para>
@@ -161,6 +167,8 @@
</listitem>
</varlistentry>
+ -->
+
<varlistentry>
<term>
<option>-f</option> <replaceable>file</replaceable>,
@@ -187,7 +195,11 @@
<listitem>
<para>
- Print command-line help message and exit.
+ Print a local help message for this build, if one is defined in
+ the configuration file(s), plus a line that describes the -H
+ option for command-line option help. If no local help message
+ is defined, prints the standard help message about command-line
+ options. Exits after displaying the appropriate message.
</para>
</listitem>
@@ -196,14 +208,13 @@
<varlistentry>
<term>
<option>-H</option>,
- <option>--help-local</option>,
- <option>--local-help</option>
+ <option>--help-options</option>
</term>
<listitem>
<para>
- Display a local help message for this build, if one is defined in
- the configuration file(s).
+ Print the standard help message about command-line options and
+ exit.
</para>
</listitem>
@@ -277,11 +288,13 @@
</listitem>
</varlistentry>
+ <!--
+
<varlistentry>
<term>
<option>-l</option>,
- <option>--load-average</option>=<replaceable>N</replaceable>,
- <option>--max-load</option>=<replaceable>N</replaceable>
+ <option>- -load-average</option>=<replaceable>N</replaceable>,
+ <option>- -max-load</option>=<replaceable>N</replaceable>
</term>
<listitem>
<para>
@@ -291,18 +304,22 @@
average is at least <replaceable>N</replaceable>
(a floating-point number).
- <!--
+ <!- -
???
With no argument, removes a previous load limit.
- -->
+ - ->
</para>
</listitem>
</varlistentry>
+ -->
+
+ <!--
+
<varlistentry>
<term>
- <option>--list-derived</option>
+ <option>- -list-derived</option>
</term>
<listitem>
<para>
@@ -318,7 +335,7 @@
<varlistentry>
<term>
- <option>--list-actions</option>
+ <option>- -list-actions</option>
</term>
<listitem>
<para>
@@ -334,7 +351,7 @@
<varlistentry>
<term>
- <option>--list-where</option>
+ <option>- -list-where</option>
</term>
<listitem>
<para>
@@ -348,6 +365,8 @@
</listitem>
</varlistentry>
+ -->
+
<varlistentry>
<term>
<option>-m</option>
@@ -379,11 +398,13 @@
</listitem>
</varlistentry>
+ <!--
+
<varlistentry>
<term>
<option>-o</option> <replaceable>file</replaceable>,
- <option>--old-file</option>=<replaceable>file</replaceable>,
- <option>--assume-old</option>=<replaceable>file</replaceable>
+ <option>- -old-file</option>=<replaceable>file</replaceable>,
+ <option>- -assume-old</option>=<replaceable>file</replaceable>
</term>
<listitem>
<para>
@@ -396,6 +417,8 @@
</listitem>
</varlistentry>
+ -->
+
<!--
<varlistentry>
@@ -444,10 +467,12 @@
-->
+ <!--
+
<varlistentry>
<term>
<option>-q</option>,
- <option>--question</option>
+ <option>- -question</option>
</term>
<listitem>
<para>
@@ -460,13 +485,15 @@
</listitem>
</varlistentry>
+ -->
+
<!--
<varlistentry>
<term>
<option>-r</option>,
- <option>- -no-builtin-rules</option>,
<option>-R</option>,
+ <option>- -no-builtin-rules</option>,
<option>- -no-builtin-variables</option>
</term>
<listitem>
@@ -481,9 +508,11 @@
-->
+ <!--
+
<varlistentry>
<term>
- <option>--random</option>
+ <option>- -random</option>
</term>
<listitem>
<para>
@@ -497,6 +526,8 @@
</listitem>
</varlistentry>
+ -->
+
<varlistentry>
<term>
<option>-s</option>,
@@ -530,7 +561,8 @@
<varlistentry>
<term>
- <option>-t</option>
+ <option>-t</option>,
+ <option>--touch</option>
</term>
<listitem>
<para>
@@ -565,7 +597,8 @@
<varlistentry>
<term>
- <option>-v</option>
+ <option>-v</option>,
+ <option>--version</option>,
</term>
<listitem>
<para>
@@ -647,9 +680,11 @@
-->
+ <!--
+
<varlistentry>
<term>
- <option>--warn-undefined-variables</option>
+ <option>- -warn-undefined-variables</option>
</term>
<listitem>
<para>
@@ -660,6 +695,8 @@
</listitem>
</varlistentry>
+ -->
+
<!--
<varlistentry>
diff --git a/src/scons.py b/src/scons.py
index 04292da..49f8dec 100644
--- a/src/scons.py
+++ b/src/scons.py
@@ -51,6 +51,8 @@ class Taskmaster:
# Global variables
+local_help = None
+num_jobs = 1
Scripts = []
# utility functions
@@ -86,49 +88,363 @@ def _scons_other_errors():
traceback.print_exc()
-def PrintUsage():
- print "Usage: scons [OPTION]... TARGET..."
- print "Build TARGET or multiple TARGET(s)"
- print " "
- print ' -f CONSCRIPT execute CONSCRIPT instead of "SConstruct"'
- print " -j N execute N parallel jobs"
- print " --help print this message and exit"
def Conscript(filename):
+ global Scripts
Scripts.append(filename)
-def main():
+def Help(text):
+ global local_help
+ if local_help:
+ print text
+ print "Use scons -H for help about command-line options."
+ sys.exit(0)
+
+
+option_list = []
+
+# Generic routine for to-be-written options, used by multiple options below.
+
+def opt_not_yet(opt, arg):
+ sys.stderr.write("Warning: the %s option is not yet implemented\n" % opt)
+
+class Option:
+ """Class for command-line option information.
+
+ This exists to provide a central location for everything
+ describing a command-line option, so that we can change
+ options without having to update the code to handle the
+ option in one place, the -h help message in another place,
+ etc. There are no methods here, only attributes.
+
+ You can initialize an Option with the following:
+
+ func The function that will be called when this
+ option is processed on the command line.
+ Calling sequence is:
+
+ func(opt, arg)
+
+ If there is no func, then this Option probably
+ stores an optstring to be printed.
+
+ helpline
+ The string to be printed in -h output. If no
+ helpline is specified but a help string is
+ specified (the usual case), a helpline will be
+ constructed automatically from the short, long,
+ arg, and help attributes. (In practice, then,
+ setting helpline without setting func allows you
+ to print arbitrary lines of text in the -h
+ output.)
+
+ short The string for short, single-hyphen
+ command-line options.
+ Do not include the hyphen:
+
+ 'a' for -a, 'xy' for -x and -y, etc.
+
+ long An array of strings for long, double-hyphen
+ command-line options. Do not include
+ the hyphens:
+
+ ['my-option', 'verbose']
+
+ arg If this option takes an argument, this string
+ specifies how you want it to appear in the
+ -h output ('DIRECTORY', 'FILE', etc.).
+
+ help The help string that will be printed for
+ this option in the -h output. Must be
+ 49 characters or fewer.
+
+ future If non-zero, this indicates that this feature
+ will be supported in a future release, not
+ the currently planned one. SCons will
+ recognize the option, but it won't show up
+ in the -h output.
+
+ The following attribute is derived from the supplied attributes:
+
+ optstring
+ A string, with hyphens, describing the flags
+ for this option, as constructed from the
+ specified short, long and arg attributes.
+
+ All Option objects are stored in the global option_list list,
+ in the order in which they're created. This is the list
+ that's used to generate -h output, so the order in which the
+ objects are created is the order in which they're printed.
+
+ The upshot is that specifying a command-line option and having
+ everything work correctly is a matter of defining a function to
+ process its command-line argument (set the right flag, update
+ the right value), and then creating an appropriate Option object
+ at the correct point in the code below.
+ """
+
+ def __init__(self, func = None, helpline = None,
+ short = None, long = None, arg = None,
+ help = None, future = None):
+ self.func = func
+ self.short = short
+ self.long = long
+ self.arg = arg
+ self.help = help
+ opts = []
+ if self.short:
+ for c in self.short:
+ if arg:
+ c = c + " " + arg
+ opts = opts + ['-' + c]
+ if self.long:
+ l = self.long
+ if arg:
+ l = map(lambda x,a=arg: x + "=" + a, self.long)
+ opts = opts + map(lambda x: '--' + x, l)
+ self.optstring = string.join(opts, ', ')
+ if helpline:
+ self.helpline = helpline
+ elif help and not future:
+ if len(self.optstring) <= 26:
+ sep = " " * (28 - len(self.optstring))
+ else:
+ sep = self.helpstring = "\n" + " " * 30
+ self.helpline = " " + self.optstring + sep + self.help
+ else:
+ self.helpline = None
+ global option_list
+ option_list.append(self)
+
+# In the following instantiations, the help string should be no
+# longer than 49 characters. Use the following as a guide:
+# help = "1234567890123456789012345678901234567890123456789"
+
+def opt_ignore(opt, arg):
+ sys.stderr.write("Warning: ignoring %s option\n" % opt)
+
+Option(func = opt_ignore,
+ short = 'bmSt', long = ['no-keep-going', 'stop', 'touch'],
+ help = "Ignored for compatibility.")
+
+Option(func = opt_not_yet,
+ short = 'c', long = ['clean', 'remove'],
+ help = "Remove specified targets and dependencies.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['cache-disable', 'no-cache'],
+ help = "Do not retrieve built targets from Cache.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['cache-force', 'cache-populate'],
+ help = "Copy already-built targets into the Cache.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['cache-show'],
+ help = "Print what would have built Cached targets.")
+
+Option(func = opt_not_yet,
+ short = 'C', long = ['directory'], arg = 'DIRECTORY',
+ help = "Change to DIRECTORY before doing anything.")
+
+Option(func = opt_not_yet,
+ short = 'd',
+ help = "Print file dependency information.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['debug'], arg = 'FLAGS',
+ help = "Print various types of debugging information.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'e', long = ['environment-overrides'],
+ help = "Environment variables override makefiles.")
+
+def opt_f(opt, arg):
global Scripts
+ Scripts.append(arg)
+
+Option(func = opt_f,
+ short = 'f', long = ['file', 'makefile', 'sconstruct'], arg = 'FILE',
+ help = "Read FILE as the top-level SConstruct file.")
+
+def opt_help(opt, arg):
+ global local_help
+ local_help = 1
+
+Option(func = opt_help,
+ short = 'h', long = ['help'],
+ help = "Print defined help message, or this one.")
+
+def opt_help_options(opt, arg):
+ PrintUsage()
+ sys.exit(0)
+
+Option(func = opt_help_options,
+ short = 'H', long = ['help-options'],
+ help = "Print this message and exit.")
+Option(func = opt_not_yet,
+ short = 'i', long = ['ignore-errors'],
+ help = "Ignore errors from build actions.")
+
+Option(func = opt_not_yet,
+ short = 'I', long = ['include-dir'], arg = 'DIRECTORY',
+ help = "Search DIRECTORY for imported Python modules.")
+
+def opt_j(opt, arg):
+ global num_jobs
try:
- opts, targets = getopt.getopt(sys.argv[1:], 'f:j:', ['help'])
- except getopt.GetoptError, x:
- print x
+ num_jobs = int(arg)
+ except:
PrintUsage()
sys.exit(1)
- num_jobs = 1
- for o, a in opts:
- if o == '-f': Scripts.append(a)
+ if num_jobs <= 0:
+ PrintUsage()
+ sys.exit(1)
- if o == '-j':
- try:
- num_jobs = int(a)
- except:
- PrintUsage()
- sys.exit(1)
+Option(func = opt_j,
+ short = 'j', long = ['jobs'], arg = 'N',
+ help = "Allow N jobs at once.")
+
+Option(func = opt_not_yet,
+ short = 'k', long = ['keep-going'],
+ help = "Keep going when a target can't be made.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'l', long = ['load-average', 'max-load'], arg = 'N',
+ help = "Don't start multiple jobs unless load is below N.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['list-derived'],
+ help = "Don't build; list files that would be built.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['list-actions'],
+ help = "Don't build; list files and build actions.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['list-where'],
+ help = "Don't build; list files and where defined.")
+
+Option(func = opt_not_yet,
+ short = 'n', long = ['no-exec', 'just-print', 'dry-run', 'recon'],
+ help = "Don't build; just print commands.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'o', long = ['old-file', 'assume-old'], arg = 'FILE',
+ help = "Consider FILE to be old; don't rebuild it.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['override'], arg = 'FILE',
+ help = "Override variables as specified in FILE.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'p',
+ help = "Print internal environments/objects.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'q', long = ['question'],
+ help = "Don't build; exit status says if up to date.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'rR', long = ['no-builtin-rules', 'no-builtin-variables'],
+ help = "Clear default environments and variables.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['random'],
+ help = "Build dependencies in random order.")
+
+Option(func = opt_not_yet,
+ short = 's', long = ['silent', 'quiet'],
+ help = "Don't print commands.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'u', long = ['up', 'search-up'],
+ help = "Search up directory tree for SConstruct.")
+
+Option(func = opt_not_yet,
+ short = 'v', long = ['version'],
+ help = "Print the SCons version number and exit.")
+
+Option(func = opt_not_yet,
+ short = 'w', long = ['print-directory'],
+ help = "Print the current directory.")
+
+Option(func = opt_not_yet,
+ long = ['no-print-directory'],
+ help = "Turn off -w, even if it was turned on implicitly.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['write-filenames'], arg = 'FILE',
+ help = "Write all filenames examined into FILE.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'W', long = ['what-if', 'new-file', 'assume-new'], arg = 'FILE',
+ help = "Consider FILE to be changed.")
+
+Option(func = opt_not_yet, future = 1,
+ long = ['warn-undefined-variables'],
+ help = "Warn when an undefined variable is referenced.")
+
+Option(func = opt_not_yet, future = 1,
+ short = 'Y', long = ['repository'], arg = 'REPOSITORY',
+ help = "Search REPOSITORY for source and target files.")
+
+short_opts = ""
+long_opts = []
+opt_func = {}
+
+for o in option_list:
+ if o.short:
+ if o.func:
+ for c in o.short:
+ opt_func['-' + c] = o.func
+ short_opts = short_opts + o.short
+ if o.arg:
+ short_opts = short_opts + ":"
+ if o.long:
+ if o.func:
+ for l in o.long:
+ opt_func['--' + l] = o.func
+ if o.arg:
+ long_opts = long_opts + map(lambda a: a + "=", o.long)
+ else:
+ long_opts = long_opts + o.long
- if num_jobs <= 0:
- PrintUsage()
- sys.exit(1)
- if o == '--help':
- PrintUsage()
- sys.exit(0)
+
+def PrintUsage():
+ print "Usage: scons [OPTION] [TARGET] ..."
+ print "Options:"
+ for o in option_list:
+ if o.helpline:
+ print o.helpline
+
+
+
+def main():
+ global Scripts, local_help, num_jobs
+
+ try:
+ cmd_opts, targets = getopt.getopt(sys.argv[1:], short_opts, long_opts)
+# except getopt.GetoptError, x:
+ except:
+ #print x
+ PrintUsage()
+ sys.exit(1)
+
+ for opt, arg in cmd_opts:
+ opt_func[opt](opt, arg)
if not Scripts:
Scripts.append('SConstruct')
+ if local_help and not os.path.isfile(Scripts[0]):
+ # 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)
# 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
@@ -152,6 +468,12 @@ def main():
file, Scripts = Scripts[0], Scripts[1:]
execfile(file)
+ if local_help:
+ # They specified -h, but there was no Help() inside the
+ # SConscript files. Give them the options usage.
+ PrintUsage()
+ sys.exit(0)
+
taskmaster = Taskmaster(map(lambda x: lookup(File, x), targets))
jobs = scons.Job.Jobs(num_jobs, taskmaster)
diff --git a/test/option--C.py b/test/option--C.py
new file mode 100644
index 0000000..db3402d
--- /dev/null
+++ b/test/option--C.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--C.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-C foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -C option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--directory=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --directory option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--H.py b/test/option--H.py
new file mode 100644
index 0000000..dcb56f6
--- /dev/null
+++ b/test/option--H.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--H.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-H')
+
+test.fail_test(string.find(test.stdout(), '-H, --help-options') == -1)
+
+test.pass_test()
+
diff --git a/test/option--I.py b/test/option--I.py
new file mode 100644
index 0000000..f205a76
--- /dev/null
+++ b/test/option--I.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--I.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-I foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -I option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--include-dir=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --include-dir option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--R.py b/test/option--R.py
new file mode 100644
index 0000000..cf401db
--- /dev/null
+++ b/test/option--R.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--R.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-R')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -R option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--no-builtin-variables')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --no-builtin-variables option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--S.py b/test/option--S.py
new file mode 100644
index 0000000..0db4dc5
--- /dev/null
+++ b/test/option--S.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--S.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-S')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring -S option\n")
+
+test.run(chdir = '.', arguments = '--no-keep-going')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring --no-keep-going option\n")
+
+test.run(chdir = '.', arguments = '--stop')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring --stop option\n")
+
+test.pass_test()
+
diff --git a/test/option--W.py b/test/option--W.py
new file mode 100644
index 0000000..6f0a2a1
--- /dev/null
+++ b/test/option--W.py
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--W.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-W foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -W option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--what-if=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --what-if option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--new-file=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --new-file option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--assume-new=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --assume-new option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--Y.py b/test/option--Y.py
new file mode 100644
index 0000000..e8c3356
--- /dev/null
+++ b/test/option--Y.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--Y.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-Y foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -Y option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--repository=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --repository option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--cd.py b/test/option--cd.py
new file mode 100644
index 0000000..91694de
--- /dev/null
+++ b/test/option--cd.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--cd.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--cache-disable')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --cache-disable option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--no-cache')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --no-cache option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--cf.py b/test/option--cf.py
new file mode 100644
index 0000000..a0f7e9a
--- /dev/null
+++ b/test/option--cf.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--cf.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--cache-force')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --cache-force option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--cache-populate')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --cache-populate option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--cs.py b/test/option--cs.py
new file mode 100644
index 0000000..b28e641
--- /dev/null
+++ b/test/option--cs.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--cs.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--cache-show')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --cache-show option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--la.py b/test/option--la.py
new file mode 100644
index 0000000..0e7a900
--- /dev/null
+++ b/test/option--la.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--la.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--list-actions')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --list-actions option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--ld.py b/test/option--ld.py
new file mode 100644
index 0000000..0b8fb7a
--- /dev/null
+++ b/test/option--ld.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--ld.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--list-derived')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --list-derived option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--lw.py b/test/option--lw.py
new file mode 100644
index 0000000..2a7779e
--- /dev/null
+++ b/test/option--lw.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--lw.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--list-where')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --list-where option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--npd.py b/test/option--npd.py
new file mode 100644
index 0000000..8176db5
--- /dev/null
+++ b/test/option--npd.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--npd.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--no-print-directory')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --no-print-directory option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--override.py b/test/option--override.py
new file mode 100644
index 0000000..ae94be9
--- /dev/null
+++ b/test/option--override.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--override.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--override=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --override option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--random.py b/test/option--random.py
new file mode 100644
index 0000000..4d8780e
--- /dev/null
+++ b/test/option--random.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--random.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--random')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --random option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--wf.py b/test/option--wf.py
new file mode 100644
index 0000000..6fa9ff6
--- /dev/null
+++ b/test/option--wf.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--wf.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--write-filenames=FILE')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --write-filenames option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option--wuv.py b/test/option--wuv.py
new file mode 100644
index 0000000..c2b9f3b
--- /dev/null
+++ b/test/option--wuv.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option--wuv.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '--warn-undefined-variables')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --warn-undefined-variables option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-b.py b/test/option-b.py
new file mode 100644
index 0000000..42e5f73
--- /dev/null
+++ b/test/option-b.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-b.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-b')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring -b option\n")
+
+test.pass_test()
+
diff --git a/test/option-c.py b/test/option-c.py
new file mode 100644
index 0000000..1dadc51
--- /dev/null
+++ b/test/option-c.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-c.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-c')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -c option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--clean')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --clean option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--remove')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --remove option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-d.py b/test/option-d.py
new file mode 100644
index 0000000..4f7b810
--- /dev/null
+++ b/test/option-d.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-d.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-d')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -d option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-e.py b/test/option-e.py
new file mode 100644
index 0000000..9a3be5f
--- /dev/null
+++ b/test/option-e.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-e.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-e')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -e option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--environment-overrides')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --environment-overrides option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-h.py b/test/option-h.py
new file mode 100644
index 0000000..92bbbc8
--- /dev/null
+++ b/test/option-h.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-h.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.run(chdir = '.', arguments = '-h')
+
+test.fail_test(string.find(test.stdout(), '-h, --help') == -1)
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-h')
+
+test.fail_test(string.find(test.stdout(), '-h, --help') == -1)
+
+test.pass_test()
+
diff --git a/test/option-i.py b/test/option-i.py
new file mode 100644
index 0000000..3ce1595
--- /dev/null
+++ b/test/option-i.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-i.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-i')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -i option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--ignore-errors')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --ignore-errors option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-k.py b/test/option-k.py
new file mode 100644
index 0000000..68e0b6d
--- /dev/null
+++ b/test/option-k.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-k.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-k')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -k option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--keep-going')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --keep-going option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-l.py b/test/option-l.py
new file mode 100644
index 0000000..ca8051c
--- /dev/null
+++ b/test/option-l.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-l.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-l 1')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -l option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--load-average=1')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --load-average option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--max-load=1')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --max-load option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-m.py b/test/option-m.py
new file mode 100644
index 0000000..d881715
--- /dev/null
+++ b/test/option-m.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-m.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-m')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring -m option\n")
+
+test.pass_test()
+
diff --git a/test/option-n.py b/test/option-n.py
new file mode 100644
index 0000000..12bacd8
--- /dev/null
+++ b/test/option-n.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-n.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-n')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -n option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--no-exec')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --no-exec option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--just-print')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --just-print option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--dry-run')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --dry-run option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--recon')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --recon option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-o.py b/test/option-o.py
new file mode 100644
index 0000000..f095033
--- /dev/null
+++ b/test/option-o.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-o.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-o foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -o option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--old-file=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --old-file option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--assume-old=foo')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --assume-old option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-p.py b/test/option-p.py
new file mode 100644
index 0000000..cb3e05c
--- /dev/null
+++ b/test/option-p.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-p.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-p')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -p option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-q.py b/test/option-q.py
new file mode 100644
index 0000000..703b7cb
--- /dev/null
+++ b/test/option-q.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-q.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-q')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -q option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--question')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --question option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-r.py b/test/option-r.py
new file mode 100644
index 0000000..d68f429
--- /dev/null
+++ b/test/option-r.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-r.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-r')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -r option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--no-builtin-rules')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --no-builtin-rules option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-s.py b/test/option-s.py
new file mode 100644
index 0000000..9f5e20b
--- /dev/null
+++ b/test/option-s.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-s.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-s')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -s option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--silent')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --silent option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--quiet')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --quiet option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-t.py b/test/option-t.py
new file mode 100644
index 0000000..42c6602
--- /dev/null
+++ b/test/option-t.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-t.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-t')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring -t option\n")
+
+test.run(chdir = '.', arguments = '--touch')
+
+test.fail_test(test.stderr() !=
+ "Warning: ignoring --touch option\n")
+
+test.pass_test()
+
diff --git a/test/option-u.py b/test/option-u.py
new file mode 100644
index 0000000..8574332
--- /dev/null
+++ b/test/option-u.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-u.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-u')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -u option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-v.py b/test/option-v.py
new file mode 100644
index 0000000..6e7ca07
--- /dev/null
+++ b/test/option-v.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-v.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-v')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -v option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--version')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --version option is not yet implemented\n")
+
+test.pass_test()
+
diff --git a/test/option-w.py b/test/option-w.py
new file mode 100644
index 0000000..a9c466f
--- /dev/null
+++ b/test/option-w.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+__revision__ = "test/option-w.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+import string
+import sys
+
+test = TestCmd.TestCmd(program = 'scons.py',
+ workdir = '',
+ interpreter = 'python')
+
+test.write('SConstruct', "")
+
+test.run(chdir = '.', arguments = '-w')
+
+test.fail_test(test.stderr() !=
+ "Warning: the -w option is not yet implemented\n")
+
+test.run(chdir = '.', arguments = '--print-directory')
+
+test.fail_test(test.stderr() !=
+ "Warning: the --print-directory option is not yet implemented\n")
+
+test.pass_test()
+