summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDaniel Moody <dmoody256@gmail.com>2018-05-25 14:49:00 (GMT)
committerDaniel Moody <dmoody256@gmail.com>2018-05-25 14:49:00 (GMT)
commit105cc64306ad8e5af41ba02941576082b6326caf (patch)
tree5f5e180bb8cfbe31d399a4eb462bd8a5d9f177b1 /test
parent4714dd99eed58702e78ce14db958addd4101f96f (diff)
parent9f4d7333b6ec4f2d4a0754c65157b103bfb6884f (diff)
downloadSCons-105cc64306ad8e5af41ba02941576082b6326caf.zip
SCons-105cc64306ad8e5af41ba02941576082b6326caf.tar.gz
SCons-105cc64306ad8e5af41ba02941576082b6326caf.tar.bz2
Merge remote-tracking branch 'scons/master' into pr-3052-Add-method-for-individual-tools-to-search-for-windows
Diffstat (limited to 'test')
-rw-r--r--test/CPPDEFINES/append.py6
-rw-r--r--test/CPPDEFINES/pkg-config.py4
-rw-r--r--test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py4
-rwxr-xr-xtest/D/Support/executablesSearch.py2
-rw-r--r--test/Depends/no-Builder.py2
-rw-r--r--test/Docbook/basedir/htmlchunked/image/manual.xml2
-rw-r--r--test/Docbook/basedir/htmlhelp/image/manual.xml2
-rw-r--r--test/Docbook/basic/epub/image/manual.xml2
-rw-r--r--test/Docbook/basic/html/image/manual.xml2
-rw-r--r--test/Docbook/basic/htmlchunked/image/manual.xml2
-rw-r--r--test/Docbook/basic/htmlhelp/image/manual.xml2
-rw-r--r--test/Docbook/rootname/htmlchunked/image/manual.xml2
-rw-r--r--test/Docbook/rootname/htmlhelp/image/manual.xml2
-rw-r--r--test/ExecuteInvalidateCache.py2
-rw-r--r--test/Fortran/USE-MODULE-CASEINSENS.py2
-rw-r--r--test/Java/JAR.py10
-rw-r--r--test/Java/Java-1.4.py2
-rw-r--r--test/Java/Java-1.5.py2
-rw-r--r--test/Java/Java-1.6.py2
-rw-r--r--test/Java/swig-dependencies.py2
-rw-r--r--test/Libs/SharedLibrary-update-deps.py2
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir.py11
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct8
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c15
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c5
-rw-r--r--test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c5
-rw-r--r--test/MSVC/PCH-source.py2
-rw-r--r--test/MSVC/batch.py12
-rw-r--r--test/README4
-rw-r--r--test/SConstruct.py27
-rw-r--r--test/Scanner/Dir.py2
-rw-r--r--test/SideEffect/Issues/3013/files/SConscript5
-rw-r--r--test/SideEffect/Issues/3013/files/SConstruct21
-rw-r--r--test/SideEffect/Issues/3013/files/test.cpp2
-rw-r--r--test/SideEffect/Issues/3013/sideffect_with_variantdir.py49
-rw-r--r--test/Subst/Literal.py54
-rw-r--r--test/VariantDir/include-subdir.py2
-rw-r--r--test/option/tree-lib.py2
-rw-r--r--test/update-release-info/update-release-info.py2
39 files changed, 250 insertions, 36 deletions
diff --git a/test/CPPDEFINES/append.py b/test/CPPDEFINES/append.py
index 7973f22..874fceb 100644
--- a/test/CPPDEFINES/append.py
+++ b/test/CPPDEFINES/append.py
@@ -43,7 +43,7 @@ env_1738_2.Append(CPPDEFINES={'value' : '1'})
print(env_1738_2.subst('$_CPPDEFFLAGS'))
#env_1738_2.Object('test_1738_2', 'main.c')
-# http://scons.tigris.org/issues/show_bug.cgi?id=2300
+# https://github.com/SCons/scons/issues/2300
env_2300_1 = Environment(CPPDEFINES = 'foo', CPPDEFPREFIX='-D')
env_2300_1.Append(CPPDEFINES='bar')
print(env_2300_1.subst('$_CPPDEFFLAGS'))
@@ -52,8 +52,8 @@ env_2300_2 = Environment(CPPDEFINES = ['foo'], CPPDEFPREFIX='-D') # note the lis
env_2300_2.Append(CPPDEFINES='bar')
print(env_2300_2.subst('$_CPPDEFFLAGS'))
-# http://scons.tigris.org/issues/show_bug.cgi?id=1152
-# http://scons.tigris.org/issues/show_bug.cgi?id=2900
+# https://github.com/SCons/scons/issues/1152
+# https://github.com/SCons/scons/issues/2900
# Python3 dicts dont preserve order. Hence we supply subclass of OrderedDict
# whose __str__ and __repr__ act like a normal dict.
from collections import OrderedDict
diff --git a/test/CPPDEFINES/pkg-config.py b/test/CPPDEFINES/pkg-config.py
index 42f38b6..4096934 100644
--- a/test/CPPDEFINES/pkg-config.py
+++ b/test/CPPDEFINES/pkg-config.py
@@ -70,7 +70,7 @@ class OrderedPrintingDict(OrderedDict):
def __semi_deepcopy__(self):
return self.copy()
""" + """
-# http://scons.tigris.org/issues/show_bug.cgi?id=2671
+# https://github.com/SCons/scons/issues/2671
# Passing test cases
env_1 = Environment(CPPDEFINES=[('DEBUG','1'), 'TEST'])
env_1.ParseConfig('PKG_CONFIG_PATH=. %(pkg_config_path)s --cflags bug')
@@ -89,7 +89,7 @@ env_4 = Environment(CPPDEFINES=OrderedPrintingDict([('DEBUG', 1), ('TEST', None)
env_4.MergeFlags('-DSOMETHING -DVARIABLE=2')
print(env_4.subst('$_CPPDEFFLAGS'))
-# http://scons.tigris.org/issues/show_bug.cgi?id=1738
+# https://github.com/SCons/scons/issues/1738
env_1738_1 = Environment(tools=['default'])
env_1738_1.ParseConfig('PKG_CONFIG_PATH=. %(pkg_config_path)s --cflags --libs bug')
env_1738_1.Append(CPPDEFINES={'value' : '1'})
diff --git a/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py b/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py
index 7e69f50..07b1366 100644
--- a/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py
+++ b/test/D/Issues/2994/Common/D_changed_DFLAGS_not_rebuilding.py
@@ -1,6 +1,6 @@
"""
-Test to check for issue reported in tigris bug 2994
-http://scons.tigris.org/issues/show_bug.cgi?id=2994
+Test to check for issue reported in github issue 2994
+https://github.com/SCons/scons/issues/2994
"""
#
diff --git a/test/D/Support/executablesSearch.py b/test/D/Support/executablesSearch.py
index 17d9990..c572f56 100755
--- a/test/D/Support/executablesSearch.py
+++ b/test/D/Support/executablesSearch.py
@@ -51,7 +51,7 @@ def isExecutableOfToolAvailable(test, tool):
if __name__ == '__main__':
import unittest
- sys.path.append(os.path.abspath('../../../QMTest'))
+ sys.path.append(os.path.abspath('../../../testing/framework'))
import TestSCons
diff --git a/test/Depends/no-Builder.py b/test/Depends/no-Builder.py
index 48ab724..f55fcf9 100644
--- a/test/Depends/no-Builder.py
+++ b/test/Depends/no-Builder.py
@@ -40,7 +40,7 @@ file2 = File('file2')
env.Depends(file1, [[file2, 'file3']])
# Verify that a "hidden" file created by another action causes the
# action to run when an explicit Dependency is specified.
-# See http://scons.tigris.org/issues/show_bug.cgi?id=2647
+# https://github.com/SCons/scons/issues/2647
env.Depends('hidden', 'file4.out')
env.Command('file4.out', 'file4.in',
[Copy('$TARGET', '$SOURCE'), Touch('hidden')])
diff --git a/test/Docbook/basedir/htmlchunked/image/manual.xml b/test/Docbook/basedir/htmlchunked/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basedir/htmlchunked/image/manual.xml
+++ b/test/Docbook/basedir/htmlchunked/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basedir/htmlhelp/image/manual.xml b/test/Docbook/basedir/htmlhelp/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basedir/htmlhelp/image/manual.xml
+++ b/test/Docbook/basedir/htmlhelp/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/epub/image/manual.xml b/test/Docbook/basic/epub/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/epub/image/manual.xml
+++ b/test/Docbook/basic/epub/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/html/image/manual.xml b/test/Docbook/basic/html/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/html/image/manual.xml
+++ b/test/Docbook/basic/html/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/htmlchunked/image/manual.xml b/test/Docbook/basic/htmlchunked/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/htmlchunked/image/manual.xml
+++ b/test/Docbook/basic/htmlchunked/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/basic/htmlhelp/image/manual.xml b/test/Docbook/basic/htmlhelp/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/basic/htmlhelp/image/manual.xml
+++ b/test/Docbook/basic/htmlhelp/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/rootname/htmlchunked/image/manual.xml b/test/Docbook/rootname/htmlchunked/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/rootname/htmlchunked/image/manual.xml
+++ b/test/Docbook/rootname/htmlchunked/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/Docbook/rootname/htmlhelp/image/manual.xml b/test/Docbook/rootname/htmlhelp/image/manual.xml
index ca12e0e..067c76e 100644
--- a/test/Docbook/rootname/htmlhelp/image/manual.xml
+++ b/test/Docbook/rootname/htmlhelp/image/manual.xml
@@ -72,7 +72,7 @@
<listitem>
<para>the SCons Tools Wiki page at <ulink
- url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
+ url="https://github.com/SCons/scons/wiki/ToolsIndex">https://github.com/SCons/scons/wiki/ToolsIndex</ulink>.</para>
</listitem>
</itemizedlist>
</section>
diff --git a/test/ExecuteInvalidateCache.py b/test/ExecuteInvalidateCache.py
index acc7701..f6ed391 100644
--- a/test/ExecuteInvalidateCache.py
+++ b/test/ExecuteInvalidateCache.py
@@ -27,7 +27,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
"""
Test the Execute() functions clears the memoized values of affected target Nodes
when used with Delete(). Derived from
-http://scons.tigris.org/issues/show_bug.cgi?id=1307
+https://github.com/SCons/scons/issues/1307
"""
import TestSCons
diff --git a/test/Fortran/USE-MODULE-CASEINSENS.py b/test/Fortran/USE-MODULE-CASEINSENS.py
index 44c03fe..4dd115b 100644
--- a/test/Fortran/USE-MODULE-CASEINSENS.py
+++ b/test/Fortran/USE-MODULE-CASEINSENS.py
@@ -27,7 +27,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
# This test tests whether a file that defines a module "a" and
# then uses it with a different case ("A") works. Pre-2.0, this
# gave a spurious dependency cycle error.
-# See http://scons.tigris.org/issues/show_bug.cgi?id=2574
+# See https://github.com/SCons/scons/issues/2574
import TestSCons
diff --git a/test/Java/JAR.py b/test/Java/JAR.py
index d62696c..faf01a3 100644
--- a/test/Java/JAR.py
+++ b/test/Java/JAR.py
@@ -52,6 +52,7 @@ sys.exit(0)
""")
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
env = Environment(tools = ['jar'],
JAR = r'%(_python_)s myjar.py')
env.Jar(target = 'test1.jar', source = 'test1.class')
@@ -70,6 +71,7 @@ test.must_match('test1.jar', "test1.class\nline 3\n", mode='r')
if os.path.normcase('.class') == os.path.normcase('.CLASS'):
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
env = Environment(tools = ['jar'],
JAR = r'%(_python_)s myjar.py')
env.Jar(target = 'test2.jar', source = 'test2.CLASS')
@@ -95,6 +97,7 @@ sys.exit(0)
""")
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
env = Environment(tools = ['jar'],
JAR = r'%(_python_)s myjar2.py',
JARFLAGS='cvf')
@@ -126,6 +129,7 @@ where_jar = test.java_where_jar()
test.file_fixture('wrapper_with_args.py')
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
foo = Environment(tools = ['javac', 'jar'],
JAVAC = r'%(where_javac)s',
JAR = r'%(where_jar)s')
@@ -249,6 +253,8 @@ test.subdir('testdir2',
# simple SConstruct which passes the 3 .java as source
# and extracts the jars back to classes
test.write(['testdir2', 'SConstruct'], """
+DefaultEnvironment(tools=[])
+
foo = Environment()
foo.Jar(target = 'foobar', source = [
'com/javasource/JavaFile1.java',
@@ -345,6 +351,8 @@ test.subdir('listOfLists',
# test varient dir and lists of lists
test.write(['listOfLists', 'SConstruct'], """
+DefaultEnvironment(tools=[])
+
foo = Environment()
foo.VariantDir('build', 'src', duplicate=0)
foo.VariantDir('test', '../manifest_dir', duplicate=0)
@@ -435,6 +443,8 @@ test.subdir('testdir3',
# Create the jars then extract them back to check contents
test.write(['testdir3', 'SConstruct'], """
+DefaultEnvironment(tools=[])
+
foo = Environment()
bar = foo.Clone()
foo.Java(target = 'classes', source = 'com/sub/foo')
diff --git a/test/Java/Java-1.4.py b/test/Java/Java-1.4.py
index 4076783..8bbefaf 100644
--- a/test/Java/Java-1.4.py
+++ b/test/Java/Java-1.4.py
@@ -267,7 +267,7 @@ class Foo { }
""")
# Test private inner class instantiation, courtesy Tilo Prutz:
-# http://scons.tigris.org/issues/show_bug.cgi?id=1594
+# https://github.com/SCons/scons/issues/1594
test.write(['src6', 'TestSCons.java'], """\
class test
{
diff --git a/test/Java/Java-1.5.py b/test/Java/Java-1.5.py
index 6659a16..58513e2 100644
--- a/test/Java/Java-1.5.py
+++ b/test/Java/Java-1.5.py
@@ -267,7 +267,7 @@ class Foo { }
""")
# Test private inner class instantiation, courtesy Tilo Prutz:
-# http://scons.tigris.org/issues/show_bug.cgi?id=1594
+# https://github.com/SCons/scons/issues/1594
test.write(['src6', 'TestSCons.java'], """\
class test
{
diff --git a/test/Java/Java-1.6.py b/test/Java/Java-1.6.py
index be46919..04a9155 100644
--- a/test/Java/Java-1.6.py
+++ b/test/Java/Java-1.6.py
@@ -267,7 +267,7 @@ class Foo { }
""")
# Test private inner class instantiation, courtesy Tilo Prutz:
-# http://scons.tigris.org/issues/show_bug.cgi?id=1594
+# https://github.com/SCons/scons/issues/1594
test.write(['src6', 'TestSCons.java'], """\
class test
{
diff --git a/test/Java/swig-dependencies.py b/test/Java/swig-dependencies.py
index c72c44a..bd7a576 100644
--- a/test/Java/swig-dependencies.py
+++ b/test/Java/swig-dependencies.py
@@ -130,7 +130,7 @@ except:
# Bug ticket reported also this seems work fine when running outsite
# the test framework
test.skip_test('Throwing no result for this test because of bug ' +
- 'related here: http://scons.tigris.org/issues/show_bug.cgi?id=2907\n')
+ 'related here: https://github.com/SCons/scons/issues/2907\n')
pass
#test.must_exist(['java', 'classes', 'foopack', 'foopack.class'])
#test.must_exist(['java', 'classes', 'foopack', 'foopackJNI.class'])
diff --git a/test/Libs/SharedLibrary-update-deps.py b/test/Libs/SharedLibrary-update-deps.py
index 076e3ad..3abce83 100644
--- a/test/Libs/SharedLibrary-update-deps.py
+++ b/test/Libs/SharedLibrary-update-deps.py
@@ -26,7 +26,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
"""
Test that SharedLibrary() updates when a different lib is linked, even if it has the same md5.
-This is http://scons.tigris.org/issues/show_bug.cgi?id=2903
+This is https://github.com/SCons/scons/issues/2903
"""
import sys
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir.py b/test/MSVC/MSVC_BATCH-spaces-targetdir.py
new file mode 100644
index 0000000..298e10e
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir.py
@@ -0,0 +1,11 @@
+import TestSCons
+
+
+
+test = TestSCons.TestSCons()
+
+test.skip_if_not_msvc()
+
+
+test.dir_fixture('MSVC_BATCH-spaces-targetdir')
+test.run() \ No newline at end of file
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct b/test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct
new file mode 100644
index 0000000..da8002b
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/SConstruct
@@ -0,0 +1,8 @@
+import os.path
+
+env=Environment(MSVC_BATCH=True)
+
+td='tar ge tdir'
+VariantDir(td,'src')
+env.Program(os.path.join(td,'test_program'),
+ [os.path.join(td,a) for a in ['a.c','b.c','c.c']])
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c
new file mode 100644
index 0000000..1741de8
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/a.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+extern void myfuncb();
+extern void myfuncc();
+
+
+void myfunca() {
+ printf("myfunca\n");
+}
+
+int main(int argc, char *argv[]) {
+ myfunca();
+ myfuncb();
+ myfuncc();
+} \ No newline at end of file
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c
new file mode 100644
index 0000000..e03c5d0
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/b.c
@@ -0,0 +1,5 @@
+#include <stdio.h>
+
+void myfuncb() {
+ printf("myfuncb\n");
+} \ No newline at end of file
diff --git a/test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c
new file mode 100644
index 0000000..1c262d3
--- /dev/null
+++ b/test/MSVC/MSVC_BATCH-spaces-targetdir/src/c.c
@@ -0,0 +1,5 @@
+#include <stdio.h>
+
+void myfuncc() {
+ printf("myfuncc\n");
+} \ No newline at end of file
diff --git a/test/MSVC/PCH-source.py b/test/MSVC/PCH-source.py
index 6015fec..ccab66d 100644
--- a/test/MSVC/PCH-source.py
+++ b/test/MSVC/PCH-source.py
@@ -28,7 +28,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
Test use of pre-compiled headers when the source .cpp file shows
up in both the env.PCH() and the env.Program() source list.
-Issue 2505: http://scons.tigris.org/issues/show_bug.cgi?id=2505
+Issue 2505: http://github.com/SCons/scons/issues/2505
"""
import TestSCons
diff --git a/test/MSVC/batch.py b/test/MSVC/batch.py
index 8b7945b..0d3063f 100644
--- a/test/MSVC/batch.py
+++ b/test/MSVC/batch.py
@@ -32,6 +32,7 @@ explicit suffix settings so that the test should work when run on any
platform.
"""
+import os
import TestSCons
test = TestSCons.TestSCons()
@@ -72,6 +73,7 @@ for infile in sys.argv[2:]:
""")
test.write('SConstruct', """
+DefaultEnvironment(tools=[])
cccom = r'%(_python_)s fake_cl.py $_MSVC_OUTPUT_FLAG $CHANGED_SOURCES'
linkcom = r'%(_python_)s fake_link.py ${TARGET.windows} $SOURCES'
env = Environment(tools=['msvc', 'mslink'],
@@ -96,8 +98,8 @@ test.run(arguments = 'MSVC_BATCH=1 .')
test.must_match('prog.exe', "prog.c\nf1.c\nf2.c\n", mode='r')
test.must_match('fake_cl.log', """\
-/Fo. prog.c f1.c f2.c
-""", mode='r')
+/Fo.%s prog.c f1.c f2.c
+"""%os.sep, mode='r')
test.up_to_date(options = 'MSVC_BATCH=1', arguments = '.')
@@ -109,9 +111,9 @@ test.run(arguments = 'MSVC_BATCH=1 .')
test.must_match('prog.exe', "prog.c\nf1.c 2\nf2.c\n", mode='r')
test.must_match('fake_cl.log', """\
-/Fo. prog.c f1.c f2.c
-/Fo. f1.c
-""", mode='r')
+/Fo.%s prog.c f1.c f2.c
+/Fo.%s f1.c
+"""%(os.sep, os.sep), mode='r')
test.up_to_date(options = 'MSVC_BATCH=1', arguments = '.')
diff --git a/test/README b/test/README
index 2c8423f..be75398 100644
--- a/test/README
+++ b/test/README
@@ -4,7 +4,7 @@ This directory contains our end-to-end SCons tests.
They are all meant to be run essentially standalone, with the exception
of the TestSCons.py module and the other modules imported by the various
-tests. These modules are in the QMTest/ subdirectory, and PYTHONPATH
+tests. These modules are in the testing/framework/ subdirectory, and PYTHONPATH
needs to be set up correctly so that the test scripts can find them,
and so that the SCons script itself can find the build engine modules.
@@ -56,4 +56,4 @@ semblance of uniformity, here are the naming conventions for tests:
For some more information about running the tests and writing them, please
refer to the documentation for the testing framework. It can be found in
-the 'QMTest' folder, as file 'test-framework.rst'.
+the 'testing/framework' folder, as file 'test-framework.rst'.
diff --git a/test/SConstruct.py b/test/SConstruct.py
index cebdf04..8bc8617 100644
--- a/test/SConstruct.py
+++ b/test/SConstruct.py
@@ -39,6 +39,33 @@ scons: \*\*\* No SConstruct file found.
wpath = test.workpath()
+test.write('sconstruct.py', """
+import os
+print("sconstruct.py "+os.getcwd())
+""")
+
+test.run(arguments = ".",
+ stdout = test.wrap_stdout(read_str = 'sconstruct.py %s\n' % wpath,
+ build_str = "scons: `.' is up to date.\n"))
+
+test.write('Sconstruct.py', """
+import os
+print("sconstruct.py "+os.getcwd())
+""")
+
+test.run(arguments = ".",
+ stdout = test.wrap_stdout(read_str = 'sconstruct.py %s\n' % wpath,
+ build_str = "scons: `.' is up to date.\n"))
+
+test.write('SConstruct.py', """
+import os
+print("SConstruct.py "+os.getcwd())
+""")
+
+test.run(arguments = ".",
+ stdout = test.wrap_stdout(read_str = 'SConstruct.py %s\n' % wpath,
+ build_str = "scons: `.' is up to date.\n"))
+
test.write('sconstruct', """
import os
print("sconstruct "+os.getcwd())
diff --git a/test/Scanner/Dir.py b/test/Scanner/Dir.py
index 86b80e9..fa4f6c9 100644
--- a/test/Scanner/Dir.py
+++ b/test/Scanner/Dir.py
@@ -27,7 +27,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
"""
Verify that a simple scanner that returns Dir nodes works correctly.
-Submitted as http://scons.tigris.org/issues/show_bug.cgi?id=2534
+Submitted as https://github.com/SCons/scons/issues/2534
"""
import TestSCons
diff --git a/test/SideEffect/Issues/3013/files/SConscript b/test/SideEffect/Issues/3013/files/SConscript
new file mode 100644
index 0000000..27da7bb
--- /dev/null
+++ b/test/SideEffect/Issues/3013/files/SConscript
@@ -0,0 +1,5 @@
+Import('env')
+
+primary = env.make_file('output', 'test.cpp')
+this_causes_problems = env.SideEffect('output_side_effect', 'output')
+
diff --git a/test/SideEffect/Issues/3013/files/SConstruct b/test/SideEffect/Issues/3013/files/SConstruct
new file mode 100644
index 0000000..d01a4b7
--- /dev/null
+++ b/test/SideEffect/Issues/3013/files/SConstruct
@@ -0,0 +1,21 @@
+env = Environment()
+
+def make_file(target, source, env):
+ with open(str(target[0]), 'w') as f:
+ f.write('gobldygook')
+ with open(str(target[0]) + '_side_effect', 'w') as side_effect:
+ side_effect.write('anything')
+
+env.Append(
+ BUILDERS={'make_file': Builder(action=Action(make_file))}
+)
+
+env.objdir = 'build'
+
+SConscript(
+ 'SConscript',
+ variant_dir=env.objdir,
+ exports={'env':env},
+ duplicate=0
+)
+
diff --git a/test/SideEffect/Issues/3013/files/test.cpp b/test/SideEffect/Issues/3013/files/test.cpp
new file mode 100644
index 0000000..27424b0
--- /dev/null
+++ b/test/SideEffect/Issues/3013/files/test.cpp
@@ -0,0 +1,2 @@
+void some_function() {}
+
diff --git a/test/SideEffect/Issues/3013/sideffect_with_variantdir.py b/test/SideEffect/Issues/3013/sideffect_with_variantdir.py
new file mode 100644
index 0000000..9ca3eca
--- /dev/null
+++ b/test/SideEffect/Issues/3013/sideffect_with_variantdir.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# 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__"
+
+"""
+Test materials for Github Issue 3013 submitted by Stefan Ross:
+https://github.com/SCons/scons/issues/3013
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.dir_fixture('files')
+
+test.run(
+ arguments = '-j2'
+)
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
+
diff --git a/test/Subst/Literal.py b/test/Subst/Literal.py
new file mode 100644
index 0000000..dec243d
--- /dev/null
+++ b/test/Subst/Literal.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# 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__"
+
+"""
+Verify that Literal objects expand correctly in ${_concat()}.
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.write('SConstruct', """\
+env = Environment(PRE='pre=', MID=Literal('\$$ORIGIN'), SUF='')
+print(env.subst('${_concat(PRE, MID, SUF, __env__)}'))
+""")
+
+test.run()
+
+expect = """\
+pre=\$ORIGIN
+"""
+
+test.run(arguments='-Q -q', stdout=expect)
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/VariantDir/include-subdir.py b/test/VariantDir/include-subdir.py
index d616bba..fe26c0a 100644
--- a/test/VariantDir/include-subdir.py
+++ b/test/VariantDir/include-subdir.py
@@ -32,7 +32,7 @@ we have to make sure that the file gets copied to the variant dir. (This
was not the case for 0.98.5 and earlier)
Test case supplied by Jared Grubb, based on a minimal example supplied
-by Ali Tofigh, filed as http://scons.tigris.org/issues/show_bug.cgi?id=2121
+by Ali Tofigh, filed as https://github.com/SCons/scons/issues/2121
"""
import TestSCons
diff --git a/test/option/tree-lib.py b/test/option/tree-lib.py
index 2dc5fb0..4725d42 100644
--- a/test/option/tree-lib.py
+++ b/test/option/tree-lib.py
@@ -30,7 +30,7 @@ the dependency on the library. (On earlier versions of the Microsoft
toolchain this wouldn't show up unless the library already existed
on disk.)
-Issue 1363: http://scons.tigris.org/issues/show_bug.cgi?id=1363
+Issue 1363: https://github.com/SCons/scons/issues/1363
"""
import TestSCons
diff --git a/test/update-release-info/update-release-info.py b/test/update-release-info/update-release-info.py
index 970bcce..d0242a8 100644
--- a/test/update-release-info/update-release-info.py
+++ b/test/update-release-info/update-release-info.py
@@ -34,7 +34,7 @@ import TestRuntest
# Needed to ensure we're using the correct year
this_year=time.localtime()[0]
-TestSCons = 'QMTest/TestSCons.py' .split('/')
+TestSCons = 'testing/framework/TestSCons.py' .split('/')
README = 'README.rst' .split('/')
ReleaseConfig = 'ReleaseConfig' .split('/')
SConstruct = 'SConstruct' .split('/')