summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--QMTest/TestSCons.py93
-rw-r--r--doc/man/scons.133
-rw-r--r--src/CHANGES.txt2
-rw-r--r--src/RELEASE.txt10
-rw-r--r--src/engine/SCons/Environment.py6
-rw-r--r--src/engine/SCons/Tool/BitKeeper.py2
-rw-r--r--src/engine/SCons/Tool/CVS.py4
-rw-r--r--src/engine/SCons/Tool/Perforce.py5
-rw-r--r--src/engine/SCons/Tool/RCS.py4
-rw-r--r--src/engine/SCons/Tool/SCCS.py4
-rw-r--r--src/engine/SCons/Tool/Subversion.py4
-rw-r--r--src/engine/SCons/Tool/__init__.py37
-rw-r--r--test/Deprecated/BuildDir.py2
-rw-r--r--test/Deprecated/Copy-Method.py2
-rw-r--r--test/Deprecated/SConscript-build_dir.py6
-rw-r--r--test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOM.py32
-rw-r--r--test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOMSTR.py34
-rw-r--r--test/Deprecated/SourceCode/BitKeeper/BitKeeper.py161
-rw-r--r--test/Deprecated/SourceCode/CVS/CVS.py69
-rw-r--r--test/Deprecated/SourceCode/CVS/CVSCOM.py32
-rw-r--r--test/Deprecated/SourceCode/CVS/CVSCOMSTR.py32
-rw-r--r--test/Deprecated/SourceCode/Perforce/P4COM.py32
-rw-r--r--test/Deprecated/SourceCode/Perforce/P4COMSTR.py31
-rw-r--r--test/Deprecated/SourceCode/Perforce/Perforce.py18
-rw-r--r--test/Deprecated/SourceCode/RCS/RCS_COCOM.py34
-rw-r--r--test/Deprecated/SourceCode/RCS/RCS_COCOMSTR.py32
-rw-r--r--test/Deprecated/SourceCode/RCS/changed.py24
-rw-r--r--test/Deprecated/SourceCode/RCS/diskcheck.py33
-rw-r--r--test/Deprecated/SourceCode/RCS/explicit.py33
-rw-r--r--test/Deprecated/SourceCode/RCS/implicit.py12
-rw-r--r--test/Deprecated/SourceCode/RCS/transparent.py31
-rw-r--r--test/Deprecated/SourceCode/SCCS/SCCSCOM.py32
-rw-r--r--test/Deprecated/SourceCode/SCCS/SCCSCOMSTR.py34
-rw-r--r--test/Deprecated/SourceCode/SCCS/diskcheck.py20
-rw-r--r--test/Deprecated/SourceCode/SCCS/explicit.py11
-rw-r--r--test/Deprecated/SourceCode/SCCS/implicit.py10
-rw-r--r--test/Deprecated/SourceCode/SCCS/transparent.py10
-rw-r--r--test/Deprecated/SourceCode/SourceCode.py27
-rw-r--r--test/Deprecated/SourceCode/Subversion.py12
-rw-r--r--test/Deprecated/TaskmasterNeedsExecute.py2
-rw-r--r--test/implicit/changed-node.py6
41 files changed, 712 insertions, 306 deletions
diff --git a/QMTest/TestSCons.py b/QMTest/TestSCons.py
index c49077b..0668f9d 100644
--- a/QMTest/TestSCons.py
+++ b/QMTest/TestSCons.py
@@ -424,31 +424,92 @@ class TestSCons(TestCommon):
kw['arguments'] = option + ' ' + arguments
return self.run(**kw)
+ def deprecated_wrap(self, msg):
+ """
+ Calculate the pattern that matches a deprecation warning.
+ """
+ return '\nscons: warning: ' + re_escape(msg) + '\n' + file_expr
+
+ def deprecated_fatal(self, warn, msg):
+ """
+ Determines if the warning has turned into a fatal error. If so,
+ passes the test, as any remaining runs are now moot.
+
+ This method expects a SConscript to be present that will causes
+ the warning. The method writes a SConstruct that calls the
+ SConsscript and looks to see what type of result occurs.
+
+ The pattern that matches the warning is returned.
+
+ TODO: Actually detect that it's now an error. We don't have any
+ cases yet, so there's no way to test it.
+ """
+ self.write('SConstruct', """if True:
+ WARN = ARGUMENTS.get('WARN')
+ if WARN: SetOption('warn', WARN)
+ SConscript('SConscript')
+ """)
+
+ def err_out():
+ # TODO calculate stderr for fatal error
+ return re_escape('put something here')
+
+ # no option, should get one of nothing, warning, or error
+ warning = self.deprecated_wrap(msg)
+ self.run(arguments = '.', stderr = None)
+ stderr = self.stderr()
+ if stderr:
+ # most common case done first
+ if match_re_dotall(stderr, warning):
+ # expected output
+ pass
+ elif match_re_dotall(stderr, err_out()):
+ # now a fatal error; skip the rest of the tests
+ self.pass_test()
+ else:
+ # test failed; have to do this by hand...
+ print self.banner('STDOUT ')
+ print self.stdout()
+ print self.diff(warning, stderr, 'STDERR ')
+ self.fail_test()
+
+ return warning
+
def deprecated_warning(self, warn, msg):
"""
Verifies the expected behavior occurs for deprecation warnings.
- TODO: Need something else for deprecation errors.
+ This method expects a SConscript to be present that will causes
+ the warning. The method writes a SConstruct and exercises various
+ combinations of command-line options and SetOption parameters to
+ validate that it performs correctly.
+
+ The pattern that matches the warning is returned.
"""
+ warning = self.deprecated_fatal(warn, msg)
+
+ def RunPair(option, expected):
+ # run the same test with the option on the command line and
+ # then with the option passed via SetOption().
+ self.run(options = '--warn=' + option,
+ arguments = '.',
+ stderr = expected,
+ match = match_re_dotall)
+ self.run(options = 'WARN=' + option,
+ arguments = '.',
+ stderr = expected,
+ match = match_re_dotall)
+
# all warnings off, should get no output
- self.run(arguments = '--warn=no-deprecated .', stderr='')
+ RunPair('no-deprecated', '')
# warning enabled, should get expected output
- stderr = '\nscons: warning: ' + re_escape(msg) + '\n' + file_expr
- self.run(arguments = '--warn=%s .' % warn,
- stderr=stderr,
- match = match_re_dotall)
-
- # no --warn option, should get either nothing or expected output
- expect = """()|(%s)""" % (stderr)
- self.run(arguments = '--warn=no-%s .' % warn,
- stderr=expect,
- match = match_re_dotall)
+ RunPair(warn, warning)
# warning disabled, should get either nothing or mandatory message
- expect = """()|(Can not disable mandataory warning: 'no-%s'\n\n%s)""" % (warn, stderr)
- self.run(arguments = '--warn=no-%s .' % warn,
- stderr=expect,
- match = match_re_dotall)
+ expect = """()|(Can not disable mandataory warning: 'no-%s'\n\n%s)""" % (warn, warning)
+ RunPair('no-' + warn, expect)
+
+ return warning
def diff_substr(self, expect, actual, prelen=20, postlen=40):
i = 0
diff --git a/doc/man/scons.1 b/doc/man/scons.1
index fd2baa3..da6c918 100644
--- a/doc/man/scons.1
+++ b/doc/man/scons.1
@@ -2786,6 +2786,10 @@ is intended to be passed to the
.B SourceCode
function.
+This function is deprecated. For details, see the entry for the
+.B SourceCode
+function.
+
Example:
.ES
@@ -3168,6 +3172,10 @@ replicate part of the repository
directory hierarchy in your
local build directory.
+This function is deprecated. For details, see the entry for the
+.B SourceCode
+function.
+
Examples:
.ES
@@ -3735,7 +3743,7 @@ in the path specified by
.IR dirs .
.I dirs
may be a list of directory names or a single directory name.
-In addition to searching for files that exist in the filesytem,
+In addition to searching for files that exist in the filesystem,
this function also searches for derived files
that have not yet been built.
@@ -4719,6 +4727,10 @@ is intended to be passed to the
.B SourceCode
function.
+This function is deprecated. For details, see the entry for the
+.B SourceCode
+function.
+
Example:
.ES
@@ -5012,6 +5024,10 @@ is intended to be passed to the
.B SourceCode
function:
+This function is deprecated. For details, see the entry for the
+.B SourceCode
+function.
+
Examples:
.ES
@@ -5180,6 +5196,10 @@ is intended to be passed to the
.B SourceCode
function.
+This function is deprecated. For details, see the entry for the
+.B SourceCode
+function.
+
Example:
.ES
@@ -5638,6 +5658,13 @@ function.
.RI SourceCode( entries ", " builder )
.TP
.RI env.SourceCode( entries ", " builder )
+This function and its associate factory functions are deprecated.
+There is no replacement.
+The intended use was to keep a local tree in sync with an archive,
+but in actuality the function only causes the archive
+to be fetched on the first run.
+Synchronizing with the archive is best done external to SCons.
+
Arrange for non-existent source files to
be fetched from a source code management system
using the specified
@@ -5826,6 +5853,10 @@ source_nodes = env.subst('$EXPAND_TO_NODELIST',
'\"directory hierarchy in your
'\"local build directory.
'\"
+'\"This function is deprecated. For details, see the entry for the
+'\".B SourceCode
+'\"function.
+'\"
'\"Example:
'\"
'\".ES
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 628d012..e494a95 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -75,6 +75,8 @@ RELEASE 2.0.0.alpha.20100508 - Sat, 08 May 2010 14:29:17 -0700
- Start deprecation cycle for BuildDir() and build_dir.
+ - Start deprecation cycle for SourceCode() and related factories
+
RELEASE 1.3.0 - Tue, 23 Mar 2010 21:44:19 -0400
diff --git a/src/RELEASE.txt b/src/RELEASE.txt
index bc12077..89508c6 100644
--- a/src/RELEASE.txt
+++ b/src/RELEASE.txt
@@ -43,6 +43,9 @@
- The BuildDir() method and the build_dir option now get warnings.
+ - The SourceCode() function and its associated factory functions have
+ started their deprecation cycle and can have a warning enabled.
+
CHANGED/ENHANCED EXISTING FUNCTIONALITY
- Any Command() or env.Command() calls that use the following Action
@@ -82,7 +85,8 @@
DOCUMENTATION
- - No changes.
+ - The entried for SourceCode() and its associated factory functions now
+ state that the functions are deprecated.
DEVELOPMENT
@@ -90,5 +94,5 @@
Although code is tested with Python 2.3 and is still believed to work,
the official new floor is Python 2.4.
- Thanks to Greg Noel and Steven Knight for their contributions to this
- release.
+ Thanks to Greg Noel, Steven Knight, Dirk Baechle, and W. Trevor King for
+ their contributions to this release.
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 38a712e..b2ae4de 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -2045,9 +2045,9 @@ class Base(SubstitutionEnvironment):
def SourceCode(self, entry, builder):
"""Arrange for a source code builder for (part of) a tree."""
- #msg = """SourceCode() has been deprecated and there is no replacement.
-#\tIf you need this function, please contact dev@scons.tigris.org."""
- #SCons.Warnings.warn(SCons.Warnings.DeprecatedBuildDirWarning, msg)
+ msg = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+ SCons.Warnings.warn(SCons.Warnings.DeprecatedSourceCodeWarning, msg)
entries = self.arg2nodes(entry, self.fs.Entry)
for entry in entries:
entry.set_src_builder(builder)
diff --git a/src/engine/SCons/Tool/BitKeeper.py b/src/engine/SCons/Tool/BitKeeper.py
index 004ffeb..191879f 100644
--- a/src/engine/SCons/Tool/BitKeeper.py
+++ b/src/engine/SCons/Tool/BitKeeper.py
@@ -44,6 +44,8 @@ def generate(env):
def BitKeeperFactory(env=env):
""" """
+ import SCons.Warnings as W
+ W.warn(W.DeprecatedSourceCodeWarning, """The BitKeeper() factory is deprecated and there is no replacement.""")
act = SCons.Action.Action("$BITKEEPERCOM", "$BITKEEPERCOMSTR")
return SCons.Builder.Builder(action = act, env = env)
diff --git a/src/engine/SCons/Tool/CVS.py b/src/engine/SCons/Tool/CVS.py
index e71635e..a506231 100644
--- a/src/engine/SCons/Tool/CVS.py
+++ b/src/engine/SCons/Tool/CVS.py
@@ -8,7 +8,6 @@ selection method.
"""
-#
# __COPYRIGHT__
#
# Permission is hereby granted, free of charge, to any person obtaining
@@ -29,7 +28,6 @@ selection method.
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -43,6 +41,8 @@ def generate(env):
def CVSFactory(repos, module='', env=env):
""" """
+ import SCons.Warnings as W
+ W.warn(W.DeprecatedSourceCodeWarning, """The CVS() factory is deprecated and there is no replacement.""")
# fail if repos is not an absolute path name?
if module != '':
# Don't use os.path.join() because the name we fetch might
diff --git a/src/engine/SCons/Tool/Perforce.py b/src/engine/SCons/Tool/Perforce.py
index 8d30d12..15dd83f 100644
--- a/src/engine/SCons/Tool/Perforce.py
+++ b/src/engine/SCons/Tool/Perforce.py
@@ -8,7 +8,6 @@ selection method.
"""
-#
# __COPYRIGHT__
#
# Permission is hereby granted, free of charge, to any person obtaining
@@ -29,7 +28,6 @@ selection method.
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -44,7 +42,6 @@ import SCons.Util
from SCons.Tool.PharLapCommon import addPathIfNotExists
-
# Variables that we want to import from the base OS environment.
_import_env = [ 'P4PORT', 'P4CLIENT', 'P4USER', 'USER', 'USERNAME', 'P4PASSWD',
'P4CHARSET', 'P4LANGUAGE', 'SystemRoot' ]
@@ -57,6 +54,8 @@ def generate(env):
def PerforceFactory(env=env):
""" """
+ import SCons.Warnings as W
+ W.warn(W.DeprecatedSourceCodeWarning, """The Perforce() factory is deprecated and there is no replacement.""")
return SCons.Builder.Builder(action = PerforceAction, env = env)
#setattr(env, 'Perforce', PerforceFactory)
diff --git a/src/engine/SCons/Tool/RCS.py b/src/engine/SCons/Tool/RCS.py
index bb4721b..6ac1a33 100644
--- a/src/engine/SCons/Tool/RCS.py
+++ b/src/engine/SCons/Tool/RCS.py
@@ -8,7 +8,6 @@ selection method.
"""
-#
# __COPYRIGHT__
#
# Permission is hereby granted, free of charge, to any person obtaining
@@ -29,7 +28,6 @@ selection method.
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -43,6 +41,8 @@ def generate(env):
def RCSFactory(env=env):
""" """
+ import SCons.Warnings as W
+ W.warn(W.DeprecatedSourceCodeWarning, """The RCS() factory is deprecated and there is no replacement.""")
act = SCons.Action.Action('$RCS_COCOM', '$RCS_COCOMSTR')
return SCons.Builder.Builder(action = act, env = env)
diff --git a/src/engine/SCons/Tool/SCCS.py b/src/engine/SCons/Tool/SCCS.py
index 99582e2..7653468 100644
--- a/src/engine/SCons/Tool/SCCS.py
+++ b/src/engine/SCons/Tool/SCCS.py
@@ -8,7 +8,6 @@ selection method.
"""
-#
# __COPYRIGHT__
#
# Permission is hereby granted, free of charge, to any person obtaining
@@ -29,7 +28,6 @@ selection method.
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -43,6 +41,8 @@ def generate(env):
def SCCSFactory(env=env):
""" """
+ import SCons.Warnings as W
+ W.warn(W.DeprecatedSourceCodeWarning, """The SCCS() factory is deprecated and there is no replacement.""")
act = SCons.Action.Action('$SCCSCOM', '$SCCSCOMSTR')
return SCons.Builder.Builder(action = act, env = env)
diff --git a/src/engine/SCons/Tool/Subversion.py b/src/engine/SCons/Tool/Subversion.py
index 05a8adb..ee70925 100644
--- a/src/engine/SCons/Tool/Subversion.py
+++ b/src/engine/SCons/Tool/Subversion.py
@@ -8,7 +8,6 @@ selection method.
"""
-#
# __COPYRIGHT__
#
# Permission is hereby granted, free of charge, to any person obtaining
@@ -29,7 +28,6 @@ selection method.
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -46,6 +44,8 @@ def generate(env):
def SubversionFactory(repos, module='', env=env):
""" """
# fail if repos is not an absolute path name?
+ import SCons.Warnings as W
+ W.warn(W.DeprecatedSourceCodeWarning, """The Subversion() factory is deprecated and there is no replacement.""")
if module != '':
module = os.path.join(module, '')
act = SCons.Action.Action('$SVNCOM', '$SVNCOMSTR')
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py
index 05f095f..9d9855b 100644
--- a/src/engine/SCons/Tool/__init__.py
+++ b/src/engine/SCons/Tool/__init__.py
@@ -645,21 +645,28 @@ def tool_list(platform, env):
fortran_compiler = FindTool(fortran_compilers, env) or fortran_compilers[0]
ar = FindTool(ars, env) or ars[0]
- other_tools = FindAllTools(['BitKeeper', 'CVS',
- 'dmd',
- 'filesystem',
- 'dvipdf', 'dvips', 'gs',
- 'jar', 'javac', 'javah',
- 'latex', 'lex',
- 'm4', #'midl', 'msvs',
- 'pdflatex', 'pdftex', 'Perforce',
- 'RCS', 'rmic', 'rpcgen',
- 'SCCS',
- # 'Subversion',
- 'swig',
- 'tar', 'tex',
- 'yacc', 'zip', 'rpm', 'wix']+other_plat_tools,
- env)
+ other_tools = FindAllTools(other_plat_tools + [
+ 'dmd',
+ #TODO: merge 'install' into 'filesystem' and
+ # make 'filesystem' the default
+ 'filesystem',
+ 'm4',
+ 'wix', #'midl', 'msvs',
+ # Parser generators
+ 'lex', 'yacc',
+ # Foreign function interface
+ 'rpcgen', 'swig',
+ # Java
+ 'jar', 'javac', 'javah', 'rmic',
+ # TeX
+ 'dvipdf', 'dvips', 'gs',
+ 'tex', 'latex', 'pdflatex', 'pdftex',
+ # Archivers
+ 'tar', 'zip', 'rpm',
+ # SourceCode factories
+ 'BitKeeper', 'CVS', 'Perforce',
+ 'RCS', 'SCCS', # 'Subversion',
+ ], env)
tools = ([linker, c_compiler, cxx_compiler,
fortran_compiler, assembler, ar]
diff --git a/test/Deprecated/BuildDir.py b/test/Deprecated/BuildDir.py
index 5fe10c0..b0d6610 100644
--- a/test/Deprecated/BuildDir.py
+++ b/test/Deprecated/BuildDir.py
@@ -35,7 +35,7 @@ _exe = TestSCons._exe
test = TestSCons.TestSCons()
-test.write('SConstruct', """
+test.write('SConscript', """
BuildDir('build', 'src')
""")
diff --git a/test/Deprecated/Copy-Method.py b/test/Deprecated/Copy-Method.py
index 6909666..2714f64 100644
--- a/test/Deprecated/Copy-Method.py
+++ b/test/Deprecated/Copy-Method.py
@@ -33,7 +33,7 @@ import TestSCons
test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
-test.write('SConstruct', """
+test.write('SConscript', """
env = Environment().Copy()
env.Copy()
""")
diff --git a/test/Deprecated/SConscript-build_dir.py b/test/Deprecated/SConscript-build_dir.py
index 76ff688..c9ec07e 100644
--- a/test/Deprecated/SConscript-build_dir.py
+++ b/test/Deprecated/SConscript-build_dir.py
@@ -32,11 +32,11 @@ import TestSCons
test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
-test.write('SConstruct', """
-SConscript('SConscript', build_dir = 'build')
+test.write('SConscript', """
+SConscript('DummyScript', build_dir = 'build')
""")
-test.write('SConscript', """
+test.write('DummyScript', """
""")
msg = """The build_dir keyword has been deprecated; use the variant_dir keyword instead."""
diff --git a/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOM.py b/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOM.py
index d01ad96..eb75a8f 100644
--- a/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOM.py
+++ b/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOM.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['BitKeeper']).BitKeeper()
+""")
+
+msg_bk = """The BitKeeper() factory is deprecated and there is no replacement."""
+warn_bk = test.deprecated_fatal('deprecated-build-dir', msg_bk)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('BitKeeper', ['BitKeeper', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -89,11 +99,11 @@ test.write(['BitKeeper', 'sub', 'ddd.in'], "BitKeeper/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['BitKeeper', 'sub', 'fff.in'], "BitKeeper/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
%(_python_)s my-bk-get.py %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
%(_python_)s my-bk-get.py aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -106,7 +116,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
%(_python_)s my-bk-get.py %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_bk + warn_sc)
test.must_match('all',
"BitKeeper/aaa.in\nchecked-out bbb.in\nBitKeeper/ccc.in\n")
@@ -115,8 +131,6 @@ test.must_match(['sub', 'all'],
"BitKeeper/sub/ddd.in\nchecked-out sub/eee.in\nBitKeeper/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOMSTR.py b/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOMSTR.py
index 311ef4d..ca58b83 100644
--- a/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOMSTR.py
+++ b/test/Deprecated/SourceCode/BitKeeper/BITKEEPERCOMSTR.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['BitKeeper']).BitKeeper()
+""")
+
+msg_bk = """The BitKeeper() factory is deprecated and there is no replacement."""
+warn_bk = test.deprecated_fatal('deprecated-build-dir', msg_bk)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('BitKeeper', ['BitKeeper', 'sub'], 'sub')
@@ -56,13 +65,14 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
for src in source:
f.write(open(str(src), "rb").read())
f.close()
-env = Environment(TOOLS = ['default', 'BitKeeper'],
+env = Environment(tools = ['default', 'BitKeeper'],
BUILDERS={'Cat':Builder(action=cat)},
BITKEEPERCOM='%(_python_)s my-bk-get.py $TARGET',
BITKEEPERCOMSTR='Checking out $TARGET from our fake BitKeeper')
@@ -90,11 +100,11 @@ test.write(['BitKeeper', 'sub', 'ddd.in'], "BitKeeper/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['BitKeeper', 'sub', 'fff.in'], "BitKeeper/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
Checking out %(sub_SConscript)s from our fake BitKeeper
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
Checking out aaa.in from our fake BitKeeper
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -107,7 +117,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
Checking out %(sub_fff_in)s from our fake BitKeeper
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_bk + warn_sc)
test.must_match('all',
"BitKeeper/aaa.in\nchecked-out bbb.in\nBitKeeper/ccc.in\n")
@@ -116,8 +132,6 @@ test.must_match(['sub', 'all'],
"BitKeeper/sub/ddd.in\nchecked-out sub/eee.in\nBitKeeper/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/BitKeeper/BitKeeper.py b/test/Deprecated/SourceCode/BitKeeper/BitKeeper.py
index 24b9ccc..28b8761 100644
--- a/test/Deprecated/SourceCode/BitKeeper/BitKeeper.py
+++ b/test/Deprecated/SourceCode/BitKeeper/BitKeeper.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -33,10 +32,23 @@ import os
import TestSCons
test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['BitKeeper']).BitKeeper()
+""")
+
+msg_bk = """The BitKeeper() factory is deprecated and there is no replacement."""
+warn_bk = test.deprecated_fatal('deprecated-build-dir', msg_bk)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
+
+test.skip_test("Need BitKeeper to debug these tests.\n")
bk = test.where_is('bk')
if not bk:
- test.skip_test("Could not find 'bk'; skipping test(s).\n")
+ test.skip_test("Could not find 'bk'; skipping remaining tests.\n")
try:
login = os.getlogin()
@@ -69,13 +81,13 @@ else:
test.unlink(['work1', file])
test.unlink(['work1', ','+file])
- test.write(['work1', 'sub', 'SConscript'], """\
-Import("env")
-env.Cat('ddd.out', 'ddd.in')
-env.Cat('eee.out', 'eee.in')
-env.Cat('fff.out', 'fff.in')
-env.Cat('all', ['ddd.out', 'eee.out', 'fff.out'])
-""")
+ test.write(['work1', 'sub', 'SConscript'], """if True:
+ Import("env")
+ env.Cat('ddd.out', 'ddd.in')
+ env.Cat('eee.out', 'eee.in')
+ env.Cat('fff.out', 'fff.in')
+ env.Cat('all', ['ddd.out', 'eee.out', 'fff.out'])
+ """)
args = "create SConscript"
test.run(chdir = 'work1/sub', program = sccs, arguments = args, stderr = None)
test.unlink(['work1', 'sub', 'SConscript'])
@@ -88,33 +100,33 @@ env.Cat('all', ['ddd.out', 'eee.out', 'fff.out'])
test.unlink(['work1', 'sub', file])
test.unlink(['work1', 'sub', ','+file])
- test.write(['work1', 'SConstruct'], """
-def cat(env, source, target):
- target = str(target[0])
- f = open(target, "wb")
- for src in source:
- f.write(open(str(src), "rb").read())
- f.close()
-env = Environment(BUILDERS={'Cat':Builder(action=cat)},
- BITKEEPERGETFLAGS='-e')
-env.Cat('aaa.out', 'aaa.in')
-env.Cat('bbb.out', 'bbb.in')
-env.Cat('ccc.out', 'ccc.in')
-env.Cat('all', ['aaa.out', 'bbb.out', 'ccc.out'])
-env.SourceCode('.', env.BitKeeper())
-SConscript('sub/SConscript', "env")
-""")
+ test.write(['work1', 'SConstruct'], """if True:
+ SetOption('warn', 'deprecated-source-code')
+ def cat(env, source, target):
+ target = str(target[0])
+ f = open(target, "wb")
+ for src in source:
+ f.write(open(str(src), "rb").read())
+ f.close()
+ env = Environment(BUILDERS={'Cat':Builder(action=cat)},
+ BITKEEPERGETFLAGS='-e')
+ env.Cat('aaa.out', 'aaa.in')
+ env.Cat('bbb.out', 'bbb.in')
+ env.Cat('ccc.out', 'ccc.in')
+ env.Cat('all', ['aaa.out', 'bbb.out', 'ccc.out'])
+ env.SourceCode('.', env.BitKeeper())
+ SConscript('sub/SConscript', "env")
+ """)
test.write(['work1', 'bbb.in'], "checked-out work1/bbb.in\n")
test.write(['work1', 'sub', 'eee.in'], "checked-out work1/sub/eee.in\n")
- test.run(chdir = 'work1',
- arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+ read_str = """\
bk get -e sub/SConscript
-""",
- build_str = """\
+"""
+
+ build_str = """\
bk get -e aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -127,14 +139,21 @@ cat(["sub/eee.out"], ["sub/eee.in"])
bk get -e sub/fff.in
cat(["sub/fff.out"], ["sub/fff.in"])
cat(["sub/all"], ["sub/ddd.out", "sub/eee.out", "sub/fff.out"])
-"""),
- stderr = """\
+"""
+
+ stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+ stderr = """\
sub/SConscript 1.1 -> 1.2: 5 lines
aaa.in 1.1 -> 1.2: 1 lines
ccc.in 1.1 -> 1.2: 1 lines
sub/ddd.in 1.1 -> 1.2: 1 lines
sub/fff.in 1.1 -> 1.2: 1 lines
-""")
+"""
+
+ test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_bk + warn_sc + TestSCons.re_escape(stderr))
test.must_match(['work1', 'all'], "work1/aaa.in\nchecked-out work1/bbb.in\nwork1/ccc.in\n")
@@ -187,34 +206,34 @@ env.Cat('all', ['ddd.out', 'eee.out', 'fff.out'])
test.no_result(os.path.exists(test.workpath('work2', 'sub', 'eee.in')))
test.no_result(os.path.exists(test.workpath('work2', 'sub', 'fff.in')))
- test.write(['work2', 'SConstruct'], """\
-def cat(env, source, target):
- target = str(target[0])
- f = open(target, "wb")
- for src in source:
- f.write(open(str(src), "rb").read())
- f.close()
-env = Environment(BUILDERS={'Cat':Builder(action=cat)},
- BITKEEPERGET='$BITKEEPER co',
- BITKEEPERGETFLAGS='-q')
-env.Cat('aaa.out', 'aaa.in')
-env.Cat('bbb.out', 'bbb.in')
-env.Cat('ccc.out', 'ccc.in')
-env.Cat('all', ['aaa.out', 'bbb.out', 'ccc.out'])
-env.SourceCode('.', env.BitKeeper())
-SConscript('sub/SConscript', "env")
-""")
+ test.write(['work2', 'SConstruct'], """if True:
+ SetOption('warn', 'deprecated-source-code')
+ def cat(env, source, target):
+ target = str(target[0])
+ f = open(target, "wb")
+ for src in source:
+ f.write(open(str(src), "rb").read())
+ f.close()
+ env = Environment(BUILDERS={'Cat':Builder(action=cat)},
+ BITKEEPERGET='$BITKEEPER co',
+ BITKEEPERGETFLAGS='-q')
+ env.Cat('aaa.out', 'aaa.in')
+ env.Cat('bbb.out', 'bbb.in')
+ env.Cat('ccc.out', 'ccc.in')
+ env.Cat('all', ['aaa.out', 'bbb.out', 'ccc.out'])
+ env.SourceCode('.', env.BitKeeper())
+ SConscript('sub/SConscript', "env")
+ """)
test.write(['work2', 'bbb.in'], "checked-out work2/bbb.in\n")
test.write(['work2', 'sub', 'eee.in'], "checked-out work2/sub/eee.in\n")
- test.run(chdir = 'work2',
- arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+ read_str = """\
bk co -q sub/SConscript
-""",
- build_str = """\
+"""
+
+ build_str = """\
bk co -q aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -227,7 +246,13 @@ cat(["sub/eee.out"], ["sub/eee.in"])
bk co -q sub/fff.in
cat(["sub/fff.out"], ["sub/fff.in"])
cat(["sub/all"], ["sub/ddd.out", "sub/eee.out", "sub/fff.out"])
-"""))
+"""
+
+ stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+ test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_bk + warn_sc)
test.must_match(['work2', 'all'], "work2/aaa.in\nchecked-out work2/bbb.in\nwork2/ccc.in\n")
@@ -283,6 +308,7 @@ test.run(chdir = 'import',
arguments = 'import -q -f -tplain . %s' % test.workpath('work3'))
test.write(['work3', 'SConstruct'], """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -303,12 +329,11 @@ test.write(['work3', 'bbb.in'], "work3/bbb.in\n")
test.subdir(['work3', 'sub'])
test.write(['work3', 'sub', 'eee.in'], "work3/sub/eee.in\n")
-test.run(chdir = 'work3',
- arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
%s get sub/SConscript
-""" % bk,
- build_str = """\
+""" % bk
+
+build_str = """\
%s get aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -321,14 +346,22 @@ cat(["sub/eee.out"], ["sub/eee.in"])
%s get sub/fff.in
cat(["sub/fff.out"], ["sub/fff.in"])
cat(["sub/all"], ["sub/ddd.out", "sub/eee.out", "sub/fff.out"])
-""" % (bk, bk, bk, bk)),
- stderr = """\
+""" % (bk, bk, bk, bk)
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+stderr = """\
sub/SConscript 1.1: 5 lines
aaa.in 1.1: 1 lines
ccc.in 1.1: 1 lines
sub/ddd.in 1.1: 1 lines
sub/fff.in 1.1: 1 lines
-""")
+"""
+
+test.run(chdir = 'work3',
+ arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = TestSCons.re_escape(stderr))
test.must_match(['work3', 'all'], "import/aaa.in\nwork3/bbb.in\nimport/ccc.in\n")
diff --git a/test/Deprecated/SourceCode/CVS/CVS.py b/test/Deprecated/SourceCode/CVS/CVS.py
index eb2553d..b5b51bc 100644
--- a/test/Deprecated/SourceCode/CVS/CVS.py
+++ b/test/Deprecated/SourceCode/CVS/CVS.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,11 +31,21 @@ import os
import TestSCons
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['CVS']).CVS('')
+""")
+
+msg_cvs = """The CVS() factory is deprecated and there is no replacement."""
+warn_cvs = test.deprecated_fatal('deprecated-build-dir', msg_cvs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
cvs = test.where_is('cvs')
if not cvs:
- test.skip_test("Could not find 'cvs'; skipping test(s).\n")
+ test.skip_test("Could not find 'cvs'; skipping remaining tests.\n")
test.subdir('CVS', 'import', ['import', 'sub'], 'work1', 'work2')
@@ -88,6 +97,7 @@ test.run(chdir = 'import',
# Test the most straightforward CVS checkouts, using the module name.
test.write(['work1', 'SConstruct'], """
+SetOption('warn', 'deprecated-source-code')
import os
def cat(env, source, target):
target = str(target[0])
@@ -113,12 +123,11 @@ test.write(['work1', 'foo', 'bbb.in'], "work1/foo/bbb.in\n")
test.subdir(['work1', 'foo', 'sub',])
test.write(['work1', 'foo', 'sub', 'eee.in'], "work1/foo/sub/eee.in\n")
-test.run(chdir = 'work1',
- arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
cvs -Q -d %(cvsroot)s co foo/sub/SConscript
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
cvs -Q -d %(cvsroot)s co foo/aaa.in
cat(["aaa.out"], ["%(foo_aaa_in)s"])
cat(["bbb.out"], ["%(foo_bbb_in)s"])
@@ -131,7 +140,14 @@ cat(["%(foo_sub_eee_out)s"], ["%(foo_sub_eee_in)s"])
cvs -Q -d %(cvsroot)s co foo/sub/fff.in
cat(["%(foo_sub_fff_out)s"], ["%(foo_sub_fff_in)s"])
cat(["%(foo_sub_all)s"], ["%(foo_sub_ddd_out)s", "%(foo_sub_eee_out)s", "%(foo_sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(chdir = 'work1',
+ arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_cvs + warn_sc)
# Checking things back out of CVS apparently messes with the line
# endings, so read the result files in non-binary mode.
@@ -152,6 +168,7 @@ test.must_be_writable(test.workpath('work1', 'foo', 'sub', 'fff.in'))
# Test CVS checkouts when the module name is specified.
test.write(['work2', 'SConstruct'], """
+SetOption('warn', 'deprecated-source-code')
import os
def cat(env, source, target):
target = str(target[0])
@@ -176,13 +193,12 @@ test.write(['work2', 'bbb.in'], "work2/bbb.in\n")
test.subdir(['work2', 'sub'])
test.write(['work2', 'sub', 'eee.in'], "work2/sub/eee.in\n")
-test.run(chdir = 'work2',
- arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
cvs -q -d %(cvsroot)s co -d sub foo/sub/SConscript
U sub/SConscript
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
cvs -q -d %(cvsroot)s co -d . foo/aaa.in
U ./aaa.in
cat(["aaa.out"], ["aaa.in"])
@@ -199,7 +215,14 @@ cvs -q -d %(cvsroot)s co -d sub foo/sub/fff.in
U sub/fff.in
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(chdir = 'work2',
+ arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_cvs + warn_sc)
# Checking things back out of CVS apparently messes with the line
# endings, so read the result files in non-binary mode.
@@ -223,6 +246,7 @@ test.must_be_writable(test.workpath('work2', 'sub', 'fff.in'))
test.subdir(['work3'])
test.write(['work3', 'SConstruct'], """\
+SetOption('warn', 'deprecated-source-code')
import os
def cat(env, source, target):
target = str(target[0])
@@ -240,15 +264,12 @@ env.Cat('bbb.out', 'bbb.in')
env.Cat('ccc.out', 'ccc.in')
env.Cat('all', ['aaa.out', 'bbb.out', 'ccc.out'])
cvs = env.CVS('$CVSROOT', 'foo')
-#env.SourceCode('.', cvs)
env.SourceCode('aaa.in', cvs)
env.SourceCode('bbb.in', cvs)
env.SourceCode('ccc.in', cvs)
""" % cvsroot)
-test.run(chdir = 'work3',
- arguments = '.',
- stdout = test.wrap_stdout(build_str = """\
+build_str = """\
cvs -q -d %(cvsroot)s co -d . foo/aaa.in
U ./aaa.in
cat(["aaa.out"], ["aaa.in"])
@@ -259,7 +280,14 @@ cvs -q -d %(cvsroot)s co -d . foo/ccc.in
U ./ccc.in
cat(["ccc.out"], ["ccc.in"])
cat(["all"], ["aaa.out", "bbb.out", "ccc.out"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(build_str = build_str)
+
+test.run(chdir = 'work3',
+ arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_cvs + 3*warn_sc)
test.must_match(['work3', 'aaa.out'],
"import/aaa.in\n",
@@ -278,6 +306,7 @@ test.must_match(['work3', 'all'],
#test.subdir(['work4'])
#
#test.write(['work4', 'SConstruct'], """\
+#SetOption('warn', 'deprecated-source-code')
#import os
#env = Environment(ENV = { 'PATH' : os.environ['PATH'] })
## We used to use the SourceForge server, but SourceForge has restrictions
diff --git a/test/Deprecated/SourceCode/CVS/CVSCOM.py b/test/Deprecated/SourceCode/CVS/CVSCOM.py
index 546e777..b9d9c76 100644
--- a/test/Deprecated/SourceCode/CVS/CVSCOM.py
+++ b/test/Deprecated/SourceCode/CVS/CVSCOM.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['CVS']).CVS('')
+""")
+
+msg_cvs = """The CVS() factory is deprecated and there is no replacement."""
+warn_cvs = test.deprecated_fatal('deprecated-build-dir', msg_cvs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('CVS', ['CVS', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -89,11 +99,11 @@ test.write(['CVS', 'sub', 'ddd.in'], "CVS/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['CVS', 'sub', 'fff.in'], "CVS/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
%(_python_)s my-cvs-co-.py %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
%(_python_)s my-cvs-co-.py aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -106,7 +116,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
%(_python_)s my-cvs-co-.py %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_cvs + warn_sc)
test.must_match('all',
"CVS/aaa.in\nchecked-out bbb.in\nCVS/ccc.in\n")
@@ -115,8 +131,6 @@ test.must_match(['sub', 'all'],
"CVS/sub/ddd.in\nchecked-out sub/eee.in\nCVS/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/CVS/CVSCOMSTR.py b/test/Deprecated/SourceCode/CVS/CVSCOMSTR.py
index d45bca6..9a6cf64 100644
--- a/test/Deprecated/SourceCode/CVS/CVSCOMSTR.py
+++ b/test/Deprecated/SourceCode/CVS/CVSCOMSTR.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['CVS']).CVS('')
+""")
+
+msg_cvs = """The CVS() factory is deprecated and there is no replacement."""
+warn_cvs = test.deprecated_fatal('deprecated-build-dir', msg_cvs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('CVS', ['CVS', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -90,11 +100,11 @@ test.write(['CVS', 'sub', 'ddd.in'], "CVS/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['CVS', 'sub', 'fff.in'], "CVS/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
Checking out %(sub_SConscript)s from our fake CVS
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
Checking out aaa.in from our fake CVS
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -107,7 +117,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
Checking out %(sub_fff_in)s from our fake CVS
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_cvs + warn_sc)
test.must_match('all',
"CVS/aaa.in\nchecked-out bbb.in\nCVS/ccc.in\n")
@@ -116,8 +132,6 @@ test.must_match(['sub', 'all'],
"CVS/sub/ddd.in\nchecked-out sub/eee.in\nCVS/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/Perforce/P4COM.py b/test/Deprecated/SourceCode/Perforce/P4COM.py
index 5fd5fd2..92ae547 100644
--- a/test/Deprecated/SourceCode/Perforce/P4COM.py
+++ b/test/Deprecated/SourceCode/Perforce/P4COM.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['Perforce']).Perforce()
+""")
+
+msg_p4 = """The Perforce() factory is deprecated and there is no replacement."""
+warn_p4 = test.deprecated_fatal('deprecated-build-dir', msg_p4)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('Perforce', ['Perforce', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -89,11 +99,11 @@ test.write(['Perforce', 'sub', 'ddd.in'], "Perforce/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['Perforce', 'sub', 'fff.in'], "Perforce/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
%(_python_)s my-p4.py %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
%(_python_)s my-p4.py aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -106,7 +116,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
%(_python_)s my-p4.py %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_p4 + warn_sc)
test.must_match('all',
"Perforce/aaa.in\nchecked-out bbb.in\nPerforce/ccc.in\n")
@@ -115,8 +131,6 @@ test.must_match(['sub', 'all'],
"Perforce/sub/ddd.in\nchecked-out sub/eee.in\nPerforce/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/Perforce/P4COMSTR.py b/test/Deprecated/SourceCode/Perforce/P4COMSTR.py
index accf6d5..d022824 100644
--- a/test/Deprecated/SourceCode/Perforce/P4COMSTR.py
+++ b/test/Deprecated/SourceCode/Perforce/P4COMSTR.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -35,6 +34,17 @@ import TestSCons
_python_ = TestSCons._python_
test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['Perforce']).Perforce()
+""")
+
+msg_p4 = """The Perforce() factory is deprecated and there is no replacement."""
+warn_p4 = test.deprecated_fatal('deprecated-build-dir', msg_p4)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('Perforce', ['Perforce', 'sub'], 'sub')
@@ -56,6 +66,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -90,11 +101,11 @@ test.write(['Perforce', 'sub', 'ddd.in'], "Perforce/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['Perforce', 'sub', 'fff.in'], "Perforce/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
Checking out %(sub_SConscript)s from our fake Perforce
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
Checking out aaa.in from our fake Perforce
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -107,7 +118,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
Checking out %(sub_fff_in)s from our fake Perforce
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_p4 + warn_sc)
test.must_match('all',
"Perforce/aaa.in\nchecked-out bbb.in\nPerforce/ccc.in\n")
@@ -116,8 +133,6 @@ test.must_match(['sub', 'all'],
"Perforce/sub/ddd.in\nchecked-out sub/eee.in\nPerforce/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/Perforce/Perforce.py b/test/Deprecated/SourceCode/Perforce/Perforce.py
index 32154db..3be5a77 100644
--- a/test/Deprecated/SourceCode/Perforce/Perforce.py
+++ b/test/Deprecated/SourceCode/Perforce/Perforce.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -35,6 +34,20 @@ import os
import TestSCons
+test = TestSCons.TestSCons()
+
+test.write('SConscript', """
+Environment(tools = ['Perforce']).Perforce()
+""")
+
+msg_p4 = """The Perforce() factory is deprecated and there is no replacement."""
+warn_p4 = test.deprecated_fatal('deprecated-build-dir', msg_p4)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
+
+test.skip_test("Need Perforce to debug these tests.\n")
+
class TestPerforce(TestSCons.TestSCons):
def __init__(self, *args, **kw):
TestSCons.TestSCons.__init__(self, *args, **kw)
@@ -237,6 +250,7 @@ test.p4('-c testclient1 opened')
test.p4('-c testclient1 submit -i', stdin=changespec)
SConstruct_contents = test.substitute("""
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -263,7 +277,7 @@ test.write(['work', 'foo', 'bbb.in'], "work/foo/bbb.in\n")
test.subdir(['work', 'foo', 'sub'])
test.write(['work', 'foo', 'sub', 'eee.in'], "work/foo/sub/eee.in\n")
-test.run(chdir = 'work', arguments = '.')
+test.run(chdir = 'work', arguments = '.', stderr = warn_p4 + warn_sc)
test.fail_test(test.read(['work', 'all']) != "import/aaa.in\nwork/foo/bbb.in\nimport/ccc.in\n")
test.fail_test(test.read(['work', 'foo', 'sub', 'all']) != "import/sub/ddd.in\nwork/foo/sub/eee.in\nimport/sub/fff.in\n")
diff --git a/test/Deprecated/SourceCode/RCS/RCS_COCOM.py b/test/Deprecated/SourceCode/RCS/RCS_COCOM.py
index a1c18e5..20f0da6 100644
--- a/test/Deprecated/SourceCode/RCS/RCS_COCOM.py
+++ b/test/Deprecated/SourceCode/RCS/RCS_COCOM.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -28,13 +27,23 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
Test setting the $RCS_COCOM variable.
"""
-import os.path
+import os
import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+warn_rcs = test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('RCS', ['RCS', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -89,11 +99,11 @@ test.write(['RCS', 'sub', 'ddd.in'], "RCS/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['RCS', 'sub', 'fff.in'], "RCS/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
%(_python_)s my-rcs-co.py %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
%(_python_)s my-rcs-co.py aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -106,7 +116,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
%(_python_)s my-rcs-co.py %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_rcs + warn_sc)
test.must_match('all',
"RCS/aaa.in\nchecked-out bbb.in\nRCS/ccc.in\n")
@@ -115,8 +131,6 @@ test.must_match(['sub', 'all'],
"RCS/sub/ddd.in\nchecked-out sub/eee.in\nRCS/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/RCS/RCS_COCOMSTR.py b/test/Deprecated/SourceCode/RCS/RCS_COCOMSTR.py
index ee3ba15..3626376 100644
--- a/test/Deprecated/SourceCode/RCS/RCS_COCOMSTR.py
+++ b/test/Deprecated/SourceCode/RCS/RCS_COCOMSTR.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+warn_rcs = test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('RCS', ['RCS', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -90,11 +100,11 @@ test.write(['RCS', 'sub', 'ddd.in'], "RCS/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['RCS', 'sub', 'fff.in'], "RCS/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
Checking out %(sub_SConscript)s from our fake RCS
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
Checking out aaa.in from our fake RCS
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -107,7 +117,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
Checking out %(sub_fff_in)s from our fake RCS
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_rcs + warn_sc)
test.must_match('all',
"RCS/aaa.in\nchecked-out bbb.in\nRCS/ccc.in\n")
@@ -116,8 +132,6 @@ test.must_match(['sub', 'all'],
"RCS/sub/ddd.in\nchecked-out sub/eee.in\nRCS/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/RCS/changed.py b/test/Deprecated/SourceCode/RCS/changed.py
index d451be0..14c80bd 100644
--- a/test/Deprecated/SourceCode/RCS/changed.py
+++ b/test/Deprecated/SourceCode/RCS/changed.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -30,7 +29,17 @@ Test explicit checkouts from local RCS files.
import TestSCons
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+warn_rcs = test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
rcs = test.where_is('rcs')
if not rcs:
@@ -45,7 +54,6 @@ if not co:
test.skip_test("Could not find `co' command, skipping test(s).\n")
-
main_cpp_contents = """\
#include <stdio.h>
#include <stdlib.h>
@@ -62,8 +70,8 @@ test.write('main.c', main_cpp_contents % 1)
test.run(program = ci, arguments = '-f -tmain.c main.c', stderr = None)
-
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
import os
for key in ['LOGNAME', 'USERNAME', 'USER']:
logname = os.environ.get(key)
@@ -76,22 +84,20 @@ env2 = env.Clone()
env2.Program('main.exe', 'main.c')
""")
-test.run()
+test.run(stderr = warn_rcs + warn_sc)
test.run(program = test.workpath('main.exe'), stdout = "main.c 1\n")
-
-
test.run(program = co, arguments = '-l main.c', stderr = None)
+
test.write('main.c', main_cpp_contents % 2)
-test.not_up_to_date(arguments = 'main.exe')
+test.not_up_to_date(arguments = 'main.exe', stderr = warn_rcs + warn_sc)
test.run(program = test.workpath('main.exe'), stdout = "main.c 2\n")
-
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/RCS/diskcheck.py b/test/Deprecated/SourceCode/RCS/diskcheck.py
index 4e7dd24..7183975 100644
--- a/test/Deprecated/SourceCode/RCS/diskcheck.py
+++ b/test/Deprecated/SourceCode/RCS/diskcheck.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,6 +33,13 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+
rcs = test.where_is('rcs')
if not rcs:
test.skip_test("Could not find 'rcs'; skipping test(s).\n")
@@ -43,7 +49,6 @@ if not ci:
test.skip_test("Could not find 'ci'; skipping test(s).\n")
-
sub_RCS = os.path.join('sub', 'RCS')
sub_SConscript = os.path.join('sub', 'SConscript')
sub_all = os.path.join('sub', 'all')
@@ -87,6 +92,7 @@ test.no_result(os.path.exists(test.workpath('sub', 'bbb.in')))
test.no_result(os.path.exists(test.workpath('sub', 'ccc.in')))
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
import os
for key in ['LOGNAME', 'USERNAME', 'USER']:
logname = os.environ.get(key)
@@ -115,7 +121,7 @@ test.write('bbb.in', "checked-out bbb.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
sub_SConscript = os.path.join('sub', 'SConscript')
-SConstruct_file_line = test.python_file_line(test.workpath('SConstruct'), 22)[:-1]
+SConstruct_file_line = test.python_file_line(test.workpath('SConstruct'), 23)[:-1]
expect = """\
@@ -128,11 +134,11 @@ test.run(status=2, stderr=expect)
test.run(arguments = '--diskcheck=match,sccs', status=2, stderr=expect)
-test.run(arguments = '--diskcheck=rcs',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
co -l %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
co -l aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -145,8 +151,11 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
co -l %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()),
- stderr = """\
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+stderr = """\
%(sub_RCS)s/SConscript,v --> %(sub_SConscript)s
revision 1.1 (locked)
done
@@ -162,7 +171,9 @@ done
%(sub_RCS)s/fff.in,v --> %(sub_fff_in)s
revision 1.1 (locked)
done
-""" % locals())
+""" % locals()
+
+test.run(arguments = '--diskcheck=rcs', stdout = stdout, stderr = stderr)
# Checking things back out of RCS apparently messes with the line
# endings, so read the result files in non-binary mode.
@@ -182,8 +193,6 @@ test.must_be_writable(test.workpath('sub', 'ddd.in'))
test.must_be_writable(test.workpath('sub', 'fff.in'))
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/RCS/explicit.py b/test/Deprecated/SourceCode/RCS/explicit.py
index 75eb189..53c336a 100644
--- a/test/Deprecated/SourceCode/RCS/explicit.py
+++ b/test/Deprecated/SourceCode/RCS/explicit.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,7 +31,17 @@ import os
import TestSCons
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+warn_rcs = test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
rcs = test.where_is('rcs')
if not rcs:
@@ -43,7 +52,6 @@ if not ci:
test.skip_test("Could not find `ci' command, skipping test(s).\n")
-
test.subdir('sub')
sub_RCS = os.path.join('sub', 'RCS')
@@ -87,6 +95,7 @@ test.no_result(os.path.exists(test.workpath('sub', 'eee.in')))
test.no_result(os.path.exists(test.workpath('sub', 'fff.in')))
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
import os
for key in ['LOGNAME', 'USERNAME', 'USER']:
logname = os.environ.get(key)
@@ -115,11 +124,11 @@ test.write('bbb.in', "checked-out bbb.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
co -q %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
co -q aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -132,7 +141,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
co -q %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_rcs + warn_sc)
# Checking things back out of RCS apparently messes with the line
# endings, so read the result files in non-binary mode.
@@ -152,8 +167,6 @@ test.must_not_be_writable(test.workpath('sub', 'ddd.in'))
test.must_not_be_writable(test.workpath('sub', 'fff.in'))
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/RCS/implicit.py b/test/Deprecated/SourceCode/RCS/implicit.py
index 6677c55..ed1f1a2 100644
--- a/test/Deprecated/SourceCode/RCS/implicit.py
+++ b/test/Deprecated/SourceCode/RCS/implicit.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,6 +31,13 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+
rcs = test.where_is('rcs')
if not rcs:
test.skip_test("Could not find 'rcs'; skipping test(s).\n")
@@ -45,7 +51,6 @@ if not co:
test.skip_test("Could not find 'co'; skipping test(s).\n")
-
test.subdir('RCS')
test.write('foo.c', """\
@@ -70,6 +75,7 @@ test.run(program = ci,
stderr = None)
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
DefaultEnvironment(RCS_CO = r'%s')
env = Environment()
env.Program('foo.c')
@@ -85,8 +91,6 @@ done
""")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/RCS/transparent.py b/test/Deprecated/SourceCode/RCS/transparent.py
index 2ebde9a..67d0512 100644
--- a/test/Deprecated/SourceCode/RCS/transparent.py
+++ b/test/Deprecated/SourceCode/RCS/transparent.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,6 +33,13 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['RCS']).RCS()
+""")
+
+msg_rcs = """The RCS() factory is deprecated and there is no replacement."""
+test.deprecated_fatal('deprecated-build-dir', msg_rcs)
+
rcs = test.where_is('rcs')
if not rcs:
test.skip_test("Could not find 'rcs'; skipping test(s).\n")
@@ -43,7 +49,6 @@ if not ci:
test.skip_test("Could not find 'ci'; skipping test(s).\n")
-
sub_RCS = os.path.join('sub', 'RCS')
sub_SConscript = os.path.join('sub', 'SConscript')
sub_all = os.path.join('sub', 'all')
@@ -87,6 +92,7 @@ test.no_result(os.path.exists(test.workpath('sub', 'bbb.in')))
test.no_result(os.path.exists(test.workpath('sub', 'ccc.in')))
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
import os
for key in ['LOGNAME', 'USERNAME', 'USER']:
logname = os.environ.get(key)
@@ -113,11 +119,11 @@ test.write('bbb.in', "checked-out bbb.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
co -l %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
co -l aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -130,8 +136,11 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
co -l %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()),
- stderr = """\
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+stderr = """\
%(sub_RCS)s/SConscript,v --> %(sub_SConscript)s
revision 1.1 (locked)
done
@@ -147,7 +156,9 @@ done
%(sub_RCS)s/fff.in,v --> %(sub_fff_in)s
revision 1.1 (locked)
done
-""" % locals())
+""" % locals()
+
+test.run(arguments = '.', stdout = stdout, stderr = stderr)
# Checking things back out of RCS apparently messes with the line
# endings, so read the result files in non-binary mode.
@@ -167,8 +178,6 @@ test.must_be_writable(test.workpath('sub', 'ddd.in'))
test.must_be_writable(test.workpath('sub', 'fff.in'))
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SCCS/SCCSCOM.py b/test/Deprecated/SourceCode/SCCS/SCCSCOM.py
index 9d1b649..a08241f 100644
--- a/test/Deprecated/SourceCode/SCCS/SCCSCOM.py
+++ b/test/Deprecated/SourceCode/SCCS/SCCSCOM.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['SCCS']).SCCS()
+""")
+
+msg_sccs = """The SCCS() factory is deprecated and there is no replacement."""
+warn_sccs = test.deprecated_fatal('deprecated-build-dir', msg_sccs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('SCCS', ['SCCS', 'sub'], 'sub')
@@ -56,6 +65,7 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -89,11 +99,11 @@ test.write(['SCCS', 'sub', 'ddd.in'], "SCCS/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['SCCS', 'sub', 'fff.in'], "SCCS/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
%(_python_)s my-sccs-get.py %(sub_SConscript)s
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
%(_python_)s my-sccs-get.py aaa.in
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -106,7 +116,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
%(_python_)s my-sccs-get.py %(sub_fff_in)s
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_sccs + warn_sc)
test.must_match('all',
"SCCS/aaa.in\nchecked-out bbb.in\nSCCS/ccc.in\n")
@@ -115,8 +131,6 @@ test.must_match(['sub', 'all'],
"SCCS/sub/ddd.in\nchecked-out sub/eee.in\nSCCS/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SCCS/SCCSCOMSTR.py b/test/Deprecated/SourceCode/SCCS/SCCSCOMSTR.py
index d0da2e4..5204ee3 100644
--- a/test/Deprecated/SourceCode/SCCS/SCCSCOMSTR.py
+++ b/test/Deprecated/SourceCode/SCCS/SCCSCOMSTR.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -34,7 +33,17 @@ import TestSCons
_python_ = TestSCons._python_
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+Environment(tools = ['SCCS']).SCCS()
+""")
+
+msg_sccs = """The SCCS() factory is deprecated and there is no replacement."""
+warn_sccs = test.deprecated_fatal('deprecated-build-dir', msg_sccs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
test.subdir('SCCS', ['SCCS', 'sub'], 'sub')
@@ -56,13 +65,14 @@ for f in sys.argv[1:]:
""")
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
for src in source:
f.write(open(str(src), "rb").read())
f.close()
-env = Environment(TOOLS = ['default', 'SCCS'],
+env = Environment(tools = ['default', 'SCCS'],
BUILDERS={'Cat':Builder(action=cat)},
SCCSCOM='%(_python_)s my-sccs-get.py $TARGET',
SCCSCOMSTR='Checking out $TARGET from our fake SCCS')
@@ -90,11 +100,11 @@ test.write(['SCCS', 'sub', 'ddd.in'], "SCCS/sub/ddd.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
test.write(['SCCS', 'sub', 'fff.in'], "SCCS/sub/fff.in\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
Checking out %(sub_SConscript)s from our fake SCCS
-""" % locals(),
- build_str = """\
+""" % locals()
+
+build_str = """\
Checking out aaa.in from our fake SCCS
cat(["aaa.out"], ["aaa.in"])
cat(["bbb.out"], ["bbb.in"])
@@ -107,7 +117,13 @@ cat(["%(sub_eee_out)s"], ["%(sub_eee_in)s"])
Checking out %(sub_fff_in)s from our fake SCCS
cat(["%(sub_fff_out)s"], ["%(sub_fff_in)s"])
cat(["%(sub_all)s"], ["%(sub_ddd_out)s", "%(sub_eee_out)s", "%(sub_fff_out)s"])
-""" % locals()))
+""" % locals()
+
+stdout = test.wrap_stdout(read_str = read_str, build_str = build_str)
+
+test.run(arguments = '.',
+ stdout = TestSCons.re_escape(stdout),
+ stderr = warn_sccs + warn_sc)
test.must_match('all',
"SCCS/aaa.in\nchecked-out bbb.in\nSCCS/ccc.in\n")
@@ -116,8 +132,6 @@ test.must_match(['sub', 'all'],
"SCCS/sub/ddd.in\nchecked-out sub/eee.in\nSCCS/sub/fff.in\n")
-
-#
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SCCS/diskcheck.py b/test/Deprecated/SourceCode/SCCS/diskcheck.py
index a8660bc..774a92c 100644
--- a/test/Deprecated/SourceCode/SCCS/diskcheck.py
+++ b/test/Deprecated/SourceCode/SCCS/diskcheck.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -28,18 +27,29 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
Test transparent checkouts from SCCS files in an SCCS subdirectory.
"""
-import os.path
+import os
import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['SCCS']).SCCS()
+""")
+
+msg_sccs = """The SCCS() factory is deprecated and there is no replacement."""
+warn_sccs = test.deprecated_fatal('deprecated-build-dir', msg_sccs)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
+
+test.skip_test("Need SCCS to debug these tests.\n")
+
sccs = test.where_is('sccs')
if not sccs:
test.skip_test("Could not find 'sccs'; skipping test(s).\n")
-
test.subdir('SCCS', 'sub', ['sub', 'SCCS'])
for f in ['aaa.in', 'bbb.in', 'ccc.in']:
@@ -70,6 +80,7 @@ for f in ['ddd.in', 'eee.in', 'fff.in']:
test.unlink(['sub', ','+f])
test.write(['SConstruct'], """
+SetOption('warn', 'deprecated-source-code')
DefaultEnvironment()['SCCSCOM'] = 'cd ${TARGET.dir} && $SCCS get ${TARGET.file}'
def cat(env, source, target):
target = str(target[0])
@@ -92,7 +103,7 @@ test.write(['bbb.in'], "checked-out bbb.in\n")
test.write(['sub', 'eee.in'], "checked-out sub/eee.in\n")
sub_SConscript = os.path.join('sub', 'SConscript')
-SConstruct_file_line = test.python_file_line(test.workpath('SConstruct'), 16)[:-1]
+SConstruct_file_line = test.python_file_line(test.workpath('SConstruct'), 17)[:-1]
expect = """\
@@ -136,7 +147,6 @@ test.must_not_be_writable(test.workpath('sub', 'ddd.in'))
test.must_not_be_writable(test.workpath('sub', 'fff.in'))
-
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SCCS/explicit.py b/test/Deprecated/SourceCode/SCCS/explicit.py
index 252e901..3288425 100644
--- a/test/Deprecated/SourceCode/SCCS/explicit.py
+++ b/test/Deprecated/SourceCode/SCCS/explicit.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,12 +31,18 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['SCCS']).SCCS()
+""")
+
+msg_sccs = """The SCCS() factory is deprecated and there is no replacement."""
+test.deprecated_fatal('deprecated-build-dir', msg_sccs)
+
sccs = test.where_is('sccs')
if not sccs:
test.skip_test("Could not find 'sccs'; skipping test(s).\n")
-
test.subdir('SCCS', 'sub', ['sub', 'SCCS'])
for f in ['aaa.in', 'bbb.in', 'ccc.in']:
@@ -67,6 +72,7 @@ for f in ['ddd.in', 'eee.in', 'fff.in']:
test.unlink(['sub', ','+f])
test.write('SConstruct', """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -121,7 +127,6 @@ test.must_be_writable(test.workpath('sub', 'ddd.in'))
test.must_be_writable(test.workpath('sub', 'fff.in'))
-
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SCCS/implicit.py b/test/Deprecated/SourceCode/SCCS/implicit.py
index 3f86841..b3fbf7a 100644
--- a/test/Deprecated/SourceCode/SCCS/implicit.py
+++ b/test/Deprecated/SourceCode/SCCS/implicit.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,12 +31,18 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['SCCS']).SCCS()
+""")
+
+msg_sccs = """The SCCS() factory is deprecated and there is no replacement."""
+test.deprecated_fatal('deprecated-build-dir', msg_sccs)
+
sccs = test.where_is('sccs')
if not sccs:
test.skip_test("Could not find 'sccs'; skipping test(s).\n")
-
test.subdir('SCCS')
test.write('foo.c', """\
@@ -76,7 +81,6 @@ sccs get foo.h
test.must_contain_all_lines(test.stdout(), lines)
-
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SCCS/transparent.py b/test/Deprecated/SourceCode/SCCS/transparent.py
index a8105a2..bc482d0 100644
--- a/test/Deprecated/SourceCode/SCCS/transparent.py
+++ b/test/Deprecated/SourceCode/SCCS/transparent.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,12 +31,18 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['SCCS']).SCCS()
+""")
+
+msg_sccs = """The SCCS() factory is deprecated and there is no replacement."""
+test.deprecated_fatal('deprecated-build-dir', msg_sccs)
+
sccs = test.where_is('sccs')
if not sccs:
test.skip_test("Could not find 'sccs'; skipping test(s).\n")
-
test.subdir('SCCS', 'sub', ['sub', 'SCCS'])
for f in ['aaa.in', 'bbb.in', 'ccc.in']:
@@ -121,7 +126,6 @@ test.must_not_be_writable(test.workpath('sub', 'ddd.in'))
test.must_not_be_writable(test.workpath('sub', 'fff.in'))
-
test.pass_test()
# Local Variables:
diff --git a/test/Deprecated/SourceCode/SourceCode.py b/test/Deprecated/SourceCode/SourceCode.py
index 91af7da..d440581 100644
--- a/test/Deprecated/SourceCode/SourceCode.py
+++ b/test/Deprecated/SourceCode/SourceCode.py
@@ -20,7 +20,6 @@
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
@@ -32,11 +31,20 @@ import os
import TestSCons
-test = TestSCons.TestSCons()
+test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
+
+test.write('SConscript', """
+SourceCode('.', None)
+""")
+
+msg = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warning = test.deprecated_warning('deprecated-source-code', msg)
test.subdir('sub', 'sub2')
test.write('SConstruct', """\
+SetOption('warn', 'deprecated-source-code')
import os
def cat(env, source, target):
@@ -74,11 +82,11 @@ test.write(['sub2', 'sc-ddd.in'], "sub2/sc-ddd.in\n")
test.write(['sub', 'sc-SConscript'], "'sub/sc-SConscript'\n")
-test.run(arguments = '.',
- stdout = test.wrap_stdout(read_str = """\
+read_str = """\
sc_cat(["%s"], [])
-""" % (os.path.join('sub', 'SConscript')),
- build_str = """\
+""" % (os.path.join('sub', 'SConscript'))
+
+build_str = """\
sc_cat(["%s"], [])
cat(["aaa.out"], ["%s"])
sc_cat(["%s"], [])
@@ -95,7 +103,12 @@ cat(["ddd.out"], ["%s"])
os.path.join('sub', 'ccc.in'),
os.path.join('sub', 'ccc.in'),
os.path.join('sub2', 'ddd.in'),
- os.path.join('sub2', 'ddd.in'))))
+ os.path.join('sub2', 'ddd.in'))
+
+stdout = TestSCons.re_escape(test.wrap_stdout(read_str = read_str,
+ build_str = build_str))
+
+test.run(arguments = '.', stdout = stdout, stderr = 2*warning)
test.must_match(['sub', 'SConscript'], "'sub/sc-SConscript'\n")
test.must_match('all', "sub/sc-aaa.in\nsub/sc-bbb.in\nsub/sc-ccc.in\n")
diff --git a/test/Deprecated/SourceCode/Subversion.py b/test/Deprecated/SourceCode/Subversion.py
index 01a12f6..a97c86f 100644
--- a/test/Deprecated/SourceCode/Subversion.py
+++ b/test/Deprecated/SourceCode/Subversion.py
@@ -32,6 +32,16 @@ import TestSCons
test = TestSCons.TestSCons()
+test.write('SConscript', """
+Environment(tools = ['Subversion']).Subversion('')
+""")
+
+msg_svn = """The Subversion() factory is deprecated and there is no replacement."""
+warn_svn = test.deprecated_fatal('deprecated-build-dir', msg_svn)
+msg_sc = """SourceCode() has been deprecated and there is no replacement.
+\tIf you need this function, please contact dev@scons.tigris.org."""
+warn_sc = test.deprecated_wrap(msg_sc)
+
svn = test.where_is('svn')
if not svn:
test.skip_test("Could not find 'svn'; skipping test(s).\n")
@@ -73,6 +83,7 @@ test.run(chdir = 'import',
# Test the most straightforward Subversion checkouts, using the module name.
test.write(['work1', 'SConstruct'], """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
@@ -120,6 +131,7 @@ test.fail_test(test.read(['work1', 'foo', 'sub', 'all']) != "import/sub/ddd.in\n
# Test Subversion checkouts when the module name is specified.
test.write(['work2', 'SConstruct'], """
+SetOption('warn', 'deprecated-source-code')
def cat(env, source, target):
target = str(target[0])
f = open(target, "wb")
diff --git a/test/Deprecated/TaskmasterNeedsExecute.py b/test/Deprecated/TaskmasterNeedsExecute.py
index eb3de40..9f7ade1 100644
--- a/test/Deprecated/TaskmasterNeedsExecute.py
+++ b/test/Deprecated/TaskmasterNeedsExecute.py
@@ -33,7 +33,7 @@ import TestSCons
test = TestSCons.TestSCons(match = TestSCons.match_re_dotall)
-test.write('SConstruct', """
+test.write('SConscript', """
import SCons.Taskmaster
tm = SCons.Taskmaster.Taskmaster()
task = SCons.Taskmaster.Task(tm, [], True, None)
diff --git a/test/implicit/changed-node.py b/test/implicit/changed-node.py
index 6321b82..4f879c0 100644
--- a/test/implicit/changed-node.py
+++ b/test/implicit/changed-node.py
@@ -34,7 +34,6 @@ import TestSCons
test = TestSCons.TestSCons()
-
test.subdir('d',
['d', '1'],
['d', '2'],
@@ -43,7 +42,6 @@ test.subdir('d',
test.write('SConstruct', """\
SetOption('implicit_cache', 1)
SetOption('max_drift', 1)
-SourceCode('.', None)
def lister(target, source, env):
import os
@@ -78,11 +76,9 @@ test.write(['d', '3', 'z'], "d/3/z\n")
test.run('--debug=stacktrace')
-
test.write('SConstruct', """\
SetOption('implicit_cache', 1)
SetOption('max_drift', 1)
-SourceCode('.', None)
def lister(target, source, env):
import os.path
@@ -108,8 +104,6 @@ test.run('--debug=stacktrace')
test.pass_test()
-
-
#from os import system, rmdir, remove, mkdir, listdir
#from os.path import exists, isdir
#import sys