summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJoseph Brill <48932340+jcbrill@users.noreply.github.com>2022-04-10 15:38:47 (GMT)
committerJoseph Brill <48932340+jcbrill@users.noreply.github.com>2022-04-10 15:38:47 (GMT)
commitbfe7d2d9fa23cd49ca7675af7560c42d2d8d0130 (patch)
treea87ac28d8974f0a8105dfa1b00eb7b7b2e28b169 /test
parent2f02b1b3f7795c69188185305a2129c6df6f8371 (diff)
parenta3602d5c9d9fea87c3335aa714c34b35bf698dd0 (diff)
downloadSCons-bfe7d2d9fa23cd49ca7675af7560c42d2d8d0130.zip
SCons-bfe7d2d9fa23cd49ca7675af7560c42d2d8d0130.tar.gz
SCons-bfe7d2d9fa23cd49ca7675af7560c42d2d8d0130.tar.bz2
Merge branch 'master' into jbrill-msvc-usesettings
Diffstat (limited to 'test')
-rw-r--r--test/Actions/append.py16
-rw-r--r--test/Actions/function.py64
-rw-r--r--test/Actions/pre-post.py31
-rw-r--r--test/ninja/force_scons_callback.py57
-rw-r--r--test/ninja/iterative_speedup.py10
-rw-r--r--test/ninja/ninja_handle_control_c_rebuild.py2
-rw-r--r--test/ninja/ninja_test_sconscripts/sconstruct_control_c_ninja4
-rw-r--r--test/ninja/ninja_test_sconscripts/sconstruct_force_scons_callback11
-rw-r--r--test/option/option--.py24
-rw-r--r--test/option/option--Q.py27
-rw-r--r--test/option/option-i.py51
-rw-r--r--test/option/option-k.py152
-rw-r--r--test/option/option-s.py23
13 files changed, 243 insertions, 229 deletions
diff --git a/test/Actions/append.py b/test/Actions/append.py
index b5d4c3a..42a414b 100644
--- a/test/Actions/append.py
+++ b/test/Actions/append.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,13 +22,13 @@
# 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.
-#
-# This test exercises the addition operator of Action objects.
-# Using Environment.Prepend() and Environment.Append(), you should be
-# able to add new actions to existing ones, effectively adding steps
-# to a build process.
-__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+"""
+This test exercises the addition operator of Action objects.
+Using Environment.Prepend() and Environment.Append(), you should be
+able to add new actions to existing ones, effectively adding steps
+to a build process.
+"""
import os
import stat
diff --git a/test/Actions/function.py b/test/Actions/function.py
index 7f292cf..699cd17 100644
--- a/test/Actions/function.py
+++ b/test/Actions/function.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,9 +22,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__"
import sys
@@ -59,6 +58,7 @@ options.AddVariables(
('literal_in_listcomp', 'Literal inside list comprehension', '2'),
)
+DefaultEnvironment(tools=[])
optEnv = Environment(options=options, tools=[])
r = re.compile(optEnv['regexp'])
@@ -67,25 +67,24 @@ withClosure = \
r'''
def toto(header='%(header)s', trailer='%(trailer)s'):
xxx = %(closure_cell_value)s
- def writeDeps(target, source, env, b=%(b)s, r=r %(extraarg)s ,
- header=header, trailer=trailer):
+ def writeDeps(target, source, env, b=%(b)s, r=r %(extraarg)s , header=header, trailer=trailer):
"""+'"""%(docstring)s"""'+"""
def foo(b=b):
return %(nestedfuncexp)s
- f = open(str(target[0]),'wb')
- f.write(bytearray(header,'utf-8'))
- for d in env['ENVDEPS']:
- f.write(bytearray(d+'%(separator)s','utf-8'))
- f.write(bytearray(trailer+'\\n','utf-8'))
- f.write(bytearray(str(foo())+'\\n','utf-8'))
- f.write(bytearray(r.match('aaaa').group(1)+'\\n','utf-8'))
- f.write(bytearray(str(sum([x*%(literal_in_listcomp)s for x in [1,2]]))+'\\n', 'utf-8'))
- %(extracode)s
- try:
- f.write(bytearray(str(xarg),'utf-8')+b'\\n')
- except NameError:
- pass
- f.close()
+
+ with open(str(target[0]), 'wb') as f:
+ f.write(bytearray(header, 'utf-8'))
+ for d in env['ENVDEPS']:
+ f.write(bytearray(d+'%(separator)s', 'utf-8'))
+ f.write(bytearray(trailer+'\\n', 'utf-8'))
+ f.write(bytearray(str(foo())+'\\n', 'utf-8'))
+ f.write(bytearray(r.match('aaaa').group(1)+'\\n', 'utf-8'))
+ f.write(bytearray(str(sum([x*%(literal_in_listcomp)s for x in [1, 2]]))+'\\n', 'utf-8'))
+ %(extracode)s
+ try:
+ f.write(bytearray(str(xarg), 'utf-8')+b'\\n')
+ except NameError:
+ pass
return writeDeps
'''
@@ -93,13 +92,9 @@ def toto(header='%(header)s', trailer='%(trailer)s'):
exec(withClosure % optEnv)
genHeaderBld = SCons.Builder.Builder(
- action = SCons.Action.Action(
- toto(),
- 'Generating $TARGET',
- varlist=['ENVDEPS']
- ),
- suffix = '.gen.h'
- )
+ action=SCons.Action.Action(toto(), 'Generating $TARGET', varlist=['ENVDEPS']),
+ suffix='.gen.h',
+)
DefaultEnvironment(tools=[])
env = Environment(tools=[])
@@ -128,23 +123,22 @@ scons: done building targets.
"""
def runtest(arguments, expectedOutFile, expectedRebuild=True, stderr=""):
- test.run(arguments=arguments,
- stdout=expectedRebuild and rebuildstr or nobuildstr,
- stderr="")
+ test.run(
+ arguments=arguments,
+ stdout=expectedRebuild and rebuildstr or nobuildstr,
+ stderr="",
+ )
sys.stdout.write('First Build.\n')
test.must_match('Out.gen.h', expectedOutFile, message="First Build")
- # Should not be rebuild when run a second time with the same
- # arguments.
-
+ # Should not be rebuild when run a second time with the same arguments.
sys.stdout.write('Rebuild.\n')
- test.run(arguments = arguments, stdout=nobuildstr, stderr="")
+ test.run(arguments=arguments, stdout=nobuildstr, stderr="")
test.must_match('Out.gen.h', expectedOutFile, message="Should not rebuild")
-
# We're making this script chatty to prevent timeouts on really really
# slow buildbot slaves (*cough* Solaris *cough*).
diff --git a/test/Actions/pre-post.py b/test/Actions/pre-post.py
index 358aa43..ce8cbdc 100644
--- a/test/Actions/pre-post.py
+++ b/test/Actions/pre-post.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,12 +22,11 @@
# 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.
-#
-# This test exercises the AddPreAction() and AddPostAction() API
-# functions, which add pre-build and post-build actions to nodes.
-#
-__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+"""
+This test exercises the AddPreAction() and AddPostAction() API
+functions, which add pre-build and post-build actions to nodes.
+"""
import os
@@ -56,11 +57,8 @@ def before(env, target, source):
def after(env, target, source):
t = str(target[0])
a = "after_" + t
- fin = open(t, "rb")
- fout = open(a, "wb")
- fout.write(fin.read())
- fout.close()
- fin.close()
+ with open(t, "rb") as fin, open(a, "wb") as fout:
+ fout.write(fin.read())
os.chmod(a, os.stat(a)[stat.ST_MODE] | stat.S_IXUSR)
foo = env.Program(source='foo.c', target='foo')
@@ -103,19 +101,22 @@ test.must_match(['work3', 'dir', 'file'], "build()\n")
# work4 start
test.write(['work4', 'SConstruct'], """\
-
DefaultEnvironment(tools=[])
def pre_action(target, source, env):
with open(str(target[0]), 'ab') as f:
f.write(('pre %%s\\n' %% source[0]).encode())
+
def post_action(target, source, env):
with open(str(target[0]), 'ab') as f:
f.write(('post %%s\\n' %% source[0]).encode())
+
env = Environment(tools=[])
-o = env.Command(['pre-post', 'file.out'],
- 'file.in',
- r'%(_python_)s build.py ${TARGETS[1]} $SOURCE')
+o = env.Command(
+ ['pre-post', 'file.out'],
+ 'file.in',
+ r'%(_python_)s build.py ${TARGETS[1]} $SOURCE'
+)
env.AddPreAction(o, pre_action)
env.AddPostAction(o, post_action)
""" % locals())
diff --git a/test/ninja/force_scons_callback.py b/test/ninja/force_scons_callback.py
index 55c12ca..c99ed58 100644
--- a/test/ninja/force_scons_callback.py
+++ b/test/ninja/force_scons_callback.py
@@ -37,47 +37,50 @@ except ImportError:
_python_ = TestSCons._python_
_exe = TestSCons._exe
-ninja_bin = os.path.abspath(os.path.join(
- ninja.__file__,
- os.pardir,
- 'data',
- 'bin',
- 'ninja' + _exe))
+ninja_bin = os.path.abspath(
+ os.path.join(ninja.__file__, os.pardir, "data", "bin", "ninja" + _exe)
+)
-test.dir_fixture('ninja-fixture')
+test.dir_fixture("ninja-fixture")
-test.file_fixture('ninja_test_sconscripts/sconstruct_force_scons_callback', 'SConstruct')
+test.file_fixture(
+ "ninja_test_sconscripts/sconstruct_force_scons_callback", "SConstruct"
+)
# generate simple build
test.run(stdout=None)
-test.must_contain_all_lines(test.stdout(), ['Generating: build.ninja'])
-test.must_contain_all(test.stdout(), 'Executing:')
-test.must_contain_all(test.stdout(), 'ninja%(_exe)s -f' % locals())
-if test.stdout().count('scons: Building targets') != 2:
+test.must_contain_all_lines(test.stdout(), ["Generating: build.ninja"])
+test.must_contain_all(test.stdout(), "Executing:")
+test.must_contain_all(test.stdout(), "ninja%(_exe)s -f" % locals())
+if test.stdout().count("Defer to SCons to build") != 1:
test.fail_test()
-test.must_match('out.txt', 'foo.c' + os.linesep)
-test.must_match('out2.txt', "test2.cpp" + os.linesep)
+test.must_match("out.txt", "foo.c" + os.linesep)
+test.must_match("out2.txt", "test2.cpp" + os.linesep)
# clean build and ninja files
-test.run(arguments='-c', stdout=None)
-test.must_contain_all_lines(test.stdout(), [
- 'Removed out.txt',
- 'Removed out2.txt',
- 'Removed build.ninja'])
+test.run(arguments="-c", stdout=None)
+test.must_contain_all_lines(
+ test.stdout(), ["Removed out.txt", "Removed out2.txt", "Removed build.ninja"]
+)
# only generate the ninja file
-test.run(arguments='--disable-execute-ninja', stdout=None)
-test.must_contain_all_lines(test.stdout(), ['Generating: build.ninja'])
-test.must_not_exist(test.workpath('out.txt'))
-test.must_not_exist(test.workpath('out2.txt'))
+test.run(arguments="--disable-execute-ninja", stdout=None)
+test.must_contain_all_lines(test.stdout(), ["Generating: build.ninja"])
+test.must_not_exist(test.workpath("out.txt"))
+test.must_not_exist(test.workpath("out2.txt"))
# run ninja independently
-program = test.workpath('run_ninja_env.bat') if IS_WINDOWS else ninja_bin
+program = test.workpath("run_ninja_env.bat") if IS_WINDOWS else ninja_bin
test.run(program=program, stdout=None)
-if test.stdout().count('scons: Building targets') != 1:
+if test.stdout().count("Defer to SCons to build") != 1:
test.fail_test()
-test.must_match('out.txt', 'foo.c' + os.linesep)
-test.must_match('out2.txt', "test2.cpp" + os.linesep)
+test.must_match("out.txt", "foo.c" + os.linesep)
+test.must_match("out2.txt", "test2.cpp" + os.linesep)
+
+# only generate the ninja file with specific NINJA_SCONS_DAEMON_PORT
+test.run(arguments="PORT=9999 --disable-execute-ninja", stdout=None)
+# Verify that port # propagates to call to ninja_run_daemon.py
+test.must_contain(test.workpath("build.ninja"), "ninja_run_daemon.py 9999")
test.pass_test()
diff --git a/test/ninja/iterative_speedup.py b/test/ninja/iterative_speedup.py
index 05e372c..e5673b0 100644
--- a/test/ninja/iterative_speedup.py
+++ b/test/ninja/iterative_speedup.py
@@ -109,7 +109,7 @@ def generate_source(parent_source, current_source):
test.write('source_{}.h'.format(current_source), """
#include <stdio.h>
#include <stdlib.h>
-
+
int
print_function%(current_source)s();
""" % locals())
@@ -125,7 +125,7 @@ def mod_source_return(test_num):
int
print_function%(test_num)s()
- {
+ {
int test = 5 + 5;
print_function%(parent_source)s();
return test;
@@ -143,7 +143,7 @@ def mod_source_orig(test_num):
int
print_function%(test_num)s()
- {
+ {
return print_function%(parent_source)s();
}
""" % locals())
@@ -190,13 +190,15 @@ jobs = '-j' + str(get_num_cpus())
ninja_program = [test.workpath('run_ninja_env.bat'), jobs] if IS_WINDOWS else [ninja_bin, jobs]
-start = time.perf_counter()
test.run(arguments='--disable-execute-ninja', stdout=None)
+test.run(program=ninja_program, arguments='run-ninja-scons-daemon', stdout=None)
+start = time.perf_counter()
test.run(program=ninja_program, stdout=None)
stop = time.perf_counter()
ninja_times += [stop - start]
test.run(program=test.workpath('print_bin'), stdout="main print")
+
for test_mod in tests_mods:
mod_source_return(test_mod)
start = time.perf_counter()
diff --git a/test/ninja/ninja_handle_control_c_rebuild.py b/test/ninja/ninja_handle_control_c_rebuild.py
index c2c8c8d..9f6b413 100644
--- a/test/ninja/ninja_handle_control_c_rebuild.py
+++ b/test/ninja/ninja_handle_control_c_rebuild.py
@@ -22,7 +22,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
"""
-This test ensures if ninja get's a control-c (or other interrupting signal) while
+This test ensures if ninja gets a control-c (or other interrupting signal) while
regenerating the build.ninja, it doesn't remove the build.ninja leaving it
in an unworkable state.
"""
diff --git a/test/ninja/ninja_test_sconscripts/sconstruct_control_c_ninja b/test/ninja/ninja_test_sconscripts/sconstruct_control_c_ninja
index 0124576..34d7872 100644
--- a/test/ninja/ninja_test_sconscripts/sconstruct_control_c_ninja
+++ b/test/ninja/ninja_test_sconscripts/sconstruct_control_c_ninja
@@ -1,7 +1,7 @@
import os
import signal
-SetOption('experimental','ninja')
+SetOption('experimental', 'ninja')
DefaultEnvironment(tools=[])
env = Environment()
@@ -9,4 +9,4 @@ env.Tool('ninja')
env.Program(target='foo', source='foo.c')
if ARGUMENTS.get('NINJA_DISABLE_AUTO_RUN', 0):
- os.kill(os.getppid(),signal.SIGINT )
+ os.kill(os.getppid(), signal.SIGINT)
diff --git a/test/ninja/ninja_test_sconscripts/sconstruct_force_scons_callback b/test/ninja/ninja_test_sconscripts/sconstruct_force_scons_callback
index 55729a6..ef3562b 100644
--- a/test/ninja/ninja_test_sconscripts/sconstruct_force_scons_callback
+++ b/test/ninja/ninja_test_sconscripts/sconstruct_force_scons_callback
@@ -1,8 +1,11 @@
-SetOption('experimental','ninja')
+SetOption("experimental", "ninja")
DefaultEnvironment(tools=[])
env = Environment(tools=[])
-env.Tool('ninja')
+daemon_port = ARGUMENTS.get("PORT", False)
+if daemon_port:
+ env["NINJA_SCONS_DAEMON_PORT"] = int(daemon_port)
+env.Tool("ninja")
-env.Command('out.txt', 'foo.c', 'echo $SOURCE> $TARGET', NINJA_FORCE_SCONS_BUILD=True)
-env.Command('out2.txt', 'test2.cpp', 'echo $SOURCE> $TARGET') \ No newline at end of file
+env.Command("out.txt", "foo.c", "echo $SOURCE> $TARGET", NINJA_FORCE_SCONS_BUILD=True)
+env.Command("out2.txt", "test2.cpp", "echo $SOURCE> $TARGET")
diff --git a/test/option/option--.py b/test/option/option--.py
index 8e06260..dbfb3c9 100644
--- a/test/option/option--.py
+++ b/test/option/option--.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,9 +22,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__"
import os.path
@@ -34,16 +33,17 @@ test = TestSCons.TestSCons()
test.write('build.py', r"""
import sys
-file = open(sys.argv[1], 'w')
-file.write("build.py: %s\n" % sys.argv[1])
-file.close()
+
+with open(sys.argv[1], 'w') as file:
+ file.write("build.py: %s\n" % sys.argv[1])
+sys.exit(0)
""")
test.write('SConstruct', """
-MyBuild = Builder(action = r'%(_python_)s build.py $TARGETS')
-env = Environment(BUILDERS = { 'MyBuild' : MyBuild })
-env.MyBuild(target = '-f1.out', source = 'f1.in')
-env.MyBuild(target = '-f2.out', source = 'f2.in')
+MyBuild = Builder(action=r'%(_python_)s build.py $TARGETS')
+env = Environment(BUILDERS={'MyBuild': MyBuild})
+env.MyBuild(target='-f1.out', source='f1.in')
+env.MyBuild(target='-f2.out', source='f2.in')
""" % locals())
test.write('f1.in', "f1.in\n")
@@ -51,7 +51,7 @@ test.write('f2.in', "f2.in\n")
expect = test.wrap_stdout('%(_python_)s build.py -f1.out\n%(_python_)s build.py -f2.out\n' % locals())
-test.run(arguments = '-- -f1.out -f2.out', stdout = expect)
+test.run(arguments='-- -f1.out -f2.out', stdout=expect)
test.fail_test(not os.path.exists(test.workpath('-f1.out')))
test.fail_test(not os.path.exists(test.workpath('-f2.out')))
diff --git a/test/option/option--Q.py b/test/option/option--Q.py
index f3b82f9..ac56d34 100644
--- a/test/option/option--Q.py
+++ b/test/option/option--Q.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,9 +22,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__"
import os.path
@@ -35,24 +34,24 @@ test = TestSCons.TestSCons()
test.write('build.py', r"""
import sys
-file = open(sys.argv[1], 'w')
-file.write("build.py: %s\n" % sys.argv[1])
-file.close()
+
+with open(sys.argv[1], 'w') as file:
+ file.write("build.py: %s\n" % sys.argv[1])
+sys.exit(0)
""")
test.write('SConstruct', """
-
AddOption('--use_SetOption', action='store_true', dest='setoption', default=False)
-use_setoption=GetOption('setoption')
+use_setoption = GetOption('setoption')
if use_setoption:
SetOption('no_progress', True)
-
-MyBuild = Builder(action = r'%(_python_)s build.py $TARGET')
-env = Environment(BUILDERS = { 'MyBuild' : MyBuild })
-env.MyBuild(target = 'f1.out', source = 'f1.in')
-env.MyBuild(target = 'f2.out', source = 'f2.in')
+
+MyBuild = Builder(action=r'%(_python_)s build.py $TARGET')
+env = Environment(BUILDERS={'MyBuild': MyBuild})
+env.MyBuild(target='f1.out', source='f1.in')
+env.MyBuild(target='f2.out', source='f2.in')
""" % locals())
test.write('f1.in', "f1.in\n")
diff --git a/test/option/option-i.py b/test/option/option-i.py
index 9b5212d..e426e1f 100644
--- a/test/option/option-i.py
+++ b/test/option/option-i.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,9 +22,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__"
import os.path
@@ -34,43 +33,46 @@ test = TestSCons.TestSCons()
test.write('succeed.py', r"""
import sys
-file = open(sys.argv[1], 'w')
-file.write("succeed.py: %s\n" % sys.argv[1])
-file.close()
+
+with open(sys.argv[1], 'w') as file:
+ file.write("succeed.py: %s\n" % sys.argv[1])
sys.exit(0)
""")
test.write('fail.py', r"""
import sys
+
sys.exit(1)
""")
test.write('SConstruct', """
-Succeed = Builder(action = r'%(_python_)s succeed.py $TARGETS')
-Fail = Builder(action = r'%(_python_)s fail.py $TARGETS')
-env = Environment(BUILDERS = { 'Succeed' : Succeed, 'Fail' : Fail })
-env.Fail(target = 'aaa.1', source = 'aaa.in')
-env.Succeed(target = 'aaa.out', source = 'aaa.1')
-env.Fail(target = 'bbb.1', source = 'bbb.in')
-env.Succeed(target = 'bbb.out', source = 'bbb.1')
+Succeed = Builder(action=r'%(_python_)s succeed.py $TARGETS')
+Fail = Builder(action=r'%(_python_)s fail.py $TARGETS')
+env = Environment(BUILDERS={'Succeed': Succeed, 'Fail': Fail})
+env.Fail(target='aaa.1', source='aaa.in')
+env.Succeed(target='aaa.out', source='aaa.1')
+env.Fail(target='bbb.1', source='bbb.in')
+env.Succeed(target='bbb.out', source='bbb.1')
""" % locals())
test.write('aaa.in', "aaa.in\n")
test.write('bbb.in', "bbb.in\n")
-test.run(arguments = 'aaa.1 aaa.out bbb.1 bbb.out',
- stderr = 'scons: *** [aaa.1] Error 1\n',
- status = 2)
+test.run(
+ arguments='aaa.1 aaa.out bbb.1 bbb.out',
+ stderr='scons: *** [aaa.1] Error 1\n',
+ status=2,
+)
test.fail_test(os.path.exists(test.workpath('aaa.1')))
test.fail_test(os.path.exists(test.workpath('aaa.out')))
test.fail_test(os.path.exists(test.workpath('bbb.1')))
test.fail_test(os.path.exists(test.workpath('bbb.out')))
-test.run(arguments = '-i aaa.1 aaa.out bbb.1 bbb.out',
- stderr =
- 'scons: *** [aaa.1] Error 1\n'
- 'scons: *** [bbb.1] Error 1\n')
+test.run(
+ arguments='-i aaa.1 aaa.out bbb.1 bbb.out',
+ stderr='scons: *** [aaa.1] Error 1\nscons: *** [bbb.1] Error 1\n',
+)
test.fail_test(os.path.exists(test.workpath('aaa.1')))
test.fail_test(test.read('aaa.out',mode='r') != "succeed.py: aaa.out\n")
@@ -80,9 +82,10 @@ test.fail_test(test.read('bbb.out',mode='r') != "succeed.py: bbb.out\n")
test.unlink("aaa.out")
test.unlink("bbb.out")
-test.run(arguments='--ignore-errors aaa.1 aaa.out bbb.1 bbb.out',
- stderr='scons: *** [aaa.1] Error 1\n'
- 'scons: *** [bbb.1] Error 1\n')
+test.run(
+ arguments='--ignore-errors aaa.1 aaa.out bbb.1 bbb.out',
+ stderr='scons: *** [aaa.1] Error 1\nscons: *** [bbb.1] Error 1\n',
+)
test.fail_test(os.path.exists(test.workpath('aaa.1')))
test.fail_test(test.read('aaa.out', mode='r') != "succeed.py: aaa.out\n")
diff --git a/test/option/option-k.py b/test/option/option-k.py
index d6c81ea..6a7cfcb 100644
--- a/test/option/option-k.py
+++ b/test/option/option-k.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,9 +22,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__"
import TestSCons
@@ -33,18 +32,17 @@ test = TestSCons.TestSCons()
test.subdir('work1', 'work2', 'work3')
-
-
test.write('succeed.py', r"""
import sys
-file = open(sys.argv[1], 'w')
-file.write("succeed.py: %s\n" % sys.argv[1])
-file.close()
+
+with open(sys.argv[1], 'w') as file:
+ file.write("succeed.py: %s\n" % sys.argv[1])
sys.exit(0)
""")
test.write('fail.py', r"""
import sys
+
sys.exit(1)
""")
@@ -66,19 +64,23 @@ env.Succeed(target='bbb.out', source='bbb.in')
test.write(['work1', 'aaa.in'], "aaa.in\n")
test.write(['work1', 'bbb.in'], "bbb.in\n")
-test.run(chdir='work1',
- arguments='aaa.out bbb.out',
- stderr='scons: *** [aaa.1] Error 1\n',
- status=2)
+test.run(
+ chdir='work1',
+ arguments='aaa.out bbb.out',
+ stderr='scons: *** [aaa.1] Error 1\n',
+ status=2,
+)
test.must_not_exist(test.workpath('work1', 'aaa.1'))
test.must_not_exist(test.workpath('work1', 'aaa.out'))
test.must_not_exist(test.workpath('work1', 'bbb.out'))
-test.run(chdir='work1',
- arguments='-k aaa.out bbb.out',
- stderr='scons: *** [aaa.1] Error 1\n',
- status=2)
+test.run(
+ chdir='work1',
+ arguments='-k aaa.out bbb.out',
+ stderr='scons: *** [aaa.1] Error 1\n',
+ status=2,
+)
test.must_not_exist(test.workpath('work1', 'aaa.1'))
test.must_not_exist(test.workpath('work1', 'aaa.out'))
@@ -86,10 +88,12 @@ test.must_match(['work1', 'bbb.out'], "succeed.py: bbb.out\n", mode='r')
test.unlink(['work1', 'bbb.out'])
-test.run(chdir = 'work1',
- arguments='--keep-going aaa.out bbb.out',
- stderr='scons: *** [aaa.1] Error 1\n',
- status=2)
+test.run(
+ chdir='work1',
+ arguments='--keep-going aaa.out bbb.out',
+ stderr='scons: *** [aaa.1] Error 1\n',
+ status=2,
+)
test.must_not_exist(test.workpath('work1', 'aaa.1'))
test.must_not_exist(test.workpath('work1', 'aaa.out'))
@@ -131,11 +135,12 @@ env.Succeed('ddd.out', 'ccc.in')
test.write(['work2', 'aaa.in'], "aaa.in\n")
test.write(['work2', 'ccc.in'], "ccc.in\n")
-test.run(chdir='work2',
- arguments='-k .',
- status=2,
- stderr=None,
- stdout="""\
+test.run(
+ chdir='work2',
+ arguments='-k .',
+ status=2,
+ stderr=None,
+ stdout="""\
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
@@ -143,7 +148,9 @@ scons: Building targets ...
%(_python_)s ../succeed.py ccc.out
%(_python_)s ../succeed.py ddd.out
scons: done building targets (errors occurred during build).
-""" % locals())
+"""
+ % locals(),
+)
test.must_not_exist(['work2', 'aaa.out'])
test.must_not_exist(['work2', 'bbb.out'])
@@ -175,19 +182,19 @@ test.must_match(['work2', 'ddd.out'], "succeed.py: ddd.out\n", mode='r')
test.write(['work3', 'SConstruct'], """\
DefaultEnvironment(tools=[])
-Succeed = Builder(action = r'%(_python_)s ../succeed.py $TARGETS')
-Fail = Builder(action = r'%(_python_)s ../fail.py $TARGETS')
-env = Environment(BUILDERS = {'Succeed': Succeed, 'Fail': Fail}, tools=[])
+Succeed = Builder(action=r'%(_python_)s ../succeed.py $TARGETS')
+Fail = Builder(action=r'%(_python_)s ../fail.py $TARGETS')
+env = Environment(BUILDERS={'Succeed': Succeed, 'Fail': Fail}, tools=[])
a = env.Fail('aaa.out', 'aaa.in')
b = env.Succeed('bbb.out', 'bbb.in')
c = env.Succeed('ccc.out', 'ccc.in')
-a1 = Alias( 'a1', a )
-a2 = Alias( 'a2', a+b)
-a4 = Alias( 'a4', c)
-a3 = Alias( 'a3', a4+c)
+a1 = Alias('a1', a)
+a2 = Alias('a2', a + b)
+a4 = Alias('a4', c)
+a3 = Alias('a3', a4 + c)
-Alias('all', a1+a2+a3)
+Alias('all', a1 + a2 + a3)
""" % locals())
test.write(['work3', 'aaa.in'], "aaa.in\n")
@@ -196,36 +203,37 @@ test.write(['work3', 'ccc.in'], "ccc.in\n")
# Test tegular build (i.e. without -k)
-test.run(chdir = 'work3',
- arguments = '.',
- status = 2,
- stderr = None,
- stdout = """\
+test.run(
+ chdir='work3',
+ arguments='.',
+ status=2,
+ stderr=None,
+ stdout="""\
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
%(_python_)s ../fail.py aaa.out
scons: building terminated because of errors.
-""" % locals())
+"""
+ % locals(),
+)
test.must_not_exist(['work3', 'aaa.out'])
test.must_not_exist(['work3', 'bbb.out'])
test.must_not_exist(['work3', 'ccc.out'])
-
-test.run(chdir = 'work3',
- arguments = '-c .')
+test.run(chdir='work3', arguments='-c .')
test.must_not_exist(['work3', 'aaa.out'])
test.must_not_exist(['work3', 'bbb.out'])
test.must_not_exist(['work3', 'ccc.out'])
-
# Current directory
-test.run(chdir = 'work3',
- arguments = '-k .',
- status = 2,
- stderr = None,
- stdout = """\
+test.run(
+ chdir='work3',
+ arguments='-k .',
+ status=2,
+ stderr=None,
+ stdout="""\
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
@@ -233,26 +241,27 @@ scons: Building targets ...
%(_python_)s ../succeed.py bbb.out
%(_python_)s ../succeed.py ccc.out
scons: done building targets (errors occurred during build).
-""" % locals())
+"""
+ % locals(),
+)
test.must_not_exist(['work3', 'aaa.out'])
test.must_exist(['work3', 'bbb.out'])
test.must_exist(['work3', 'ccc.out'])
-
-test.run(chdir = 'work3',
- arguments = '-c .')
+test.run(chdir='work3', arguments='-c .')
test.must_not_exist(['work3', 'aaa.out'])
test.must_not_exist(['work3', 'bbb.out'])
test.must_not_exist(['work3', 'ccc.out'])
# Single target
-test.run(chdir = 'work3',
- arguments = '--keep-going all',
- status = 2,
- stderr = None,
- stdout = """\
+test.run(
+ chdir='work3',
+ arguments='--keep-going all',
+ status=2,
+ stderr=None,
+ stdout="""\
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
@@ -260,26 +269,26 @@ scons: Building targets ...
%(_python_)s ../succeed.py bbb.out
%(_python_)s ../succeed.py ccc.out
scons: done building targets (errors occurred during build).
-""" % locals())
+"""
+ % locals(),
+)
test.must_not_exist(['work3', 'aaa.out'])
test.must_exist(['work3', 'bbb.out'])
test.must_exist(['work3', 'ccc.out'])
-
-test.run(chdir = 'work3',
- arguments = '-c .')
+test.run(chdir='work3', arguments='-c .')
test.must_not_exist(['work3', 'aaa.out'])
test.must_not_exist(['work3', 'bbb.out'])
test.must_not_exist(['work3', 'ccc.out'])
-
# Separate top-level targets
-test.run(chdir = 'work3',
- arguments = '-k a1 a2 a3',
- status = 2,
- stderr = None,
- stdout = """\
+test.run(
+ chdir='work3',
+ arguments='-k a1 a2 a3',
+ status=2,
+ stderr=None,
+ stdout="""\
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
@@ -287,13 +296,14 @@ scons: Building targets ...
%(_python_)s ../succeed.py bbb.out
%(_python_)s ../succeed.py ccc.out
scons: done building targets (errors occurred during build).
-""" % locals())
+"""
+ % locals(),
+)
test.must_not_exist(['work3', 'aaa.out'])
test.must_exist(['work3', 'bbb.out'])
test.must_exist(['work3', 'ccc.out'])
-
test.pass_test()
# Local Variables:
diff --git a/test/option/option-s.py b/test/option/option-s.py
index 89a0c62..359c295 100644
--- a/test/option/option-s.py
+++ b/test/option/option-s.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
#
-# __COPYRIGHT__
+# MIT License
+#
+# Copyright The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,9 +22,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__"
import os.path
@@ -34,18 +33,19 @@ test = TestSCons.TestSCons()
test.write('build.py', r"""
import sys
-file = open(sys.argv[1], 'w')
-file.write("build.py: %s\n" % sys.argv[1])
-file.close()
+
+with open(sys.argv[1], 'w') as file:
+ file.write("build.py: %s\n" % sys.argv[1])
+sys.exit(0)
""")
test.write('SConstruct', """
DefaultEnvironment(tools=[])
-MyBuild = Builder(action = r'%(_python_)s build.py $TARGET')
+MyBuild = Builder(action=r'%(_python_)s build.py $TARGET')
-silent = ARGUMENTS.get('QUIET',0)
+silent = ARGUMENTS.get('QUIET', 0)
if silent:
- SetOption('silent',True)
+ SetOption('silent', True)
env = Environment(BUILDERS={'MyBuild': MyBuild}, tools=[])
env.MyBuild(target='f1.out', source='f1.in')
@@ -86,10 +86,7 @@ test.run(arguments='QUIET=1 f1.out f2.out',
test.fail_test(not os.path.exists(test.workpath('f1.out')))
test.fail_test(not os.path.exists(test.workpath('f2.out')))
-
-
test.pass_test()
-
# Local Variables:
# tab-width:4