summaryrefslogtreecommitdiffstats
path: root/test/Actions
diff options
context:
space:
mode:
authorMats Wichmann <mats@linux.com>2022-03-22 20:11:13 (GMT)
committerMats Wichmann <mats@linux.com>2022-03-30 13:16:29 (GMT)
commit2b673e30e81f83304746e7fec9aa4ddb0fd66f88 (patch)
tree8d91682d9d80e05d66dab0c3d7e396479c24433b /test/Actions
parent2976ed620bfd86804927a9bc3760924f4a3205e2 (diff)
downloadSCons-2b673e30e81f83304746e7fec9aa4ddb0fd66f88.zip
SCons-2b673e30e81f83304746e7fec9aa4ddb0fd66f88.tar.gz
SCons-2b673e30e81f83304746e7fec9aa4ddb0fd66f88.tar.bz2
Fix some more tests to use context-mgr open
Fiddled formatting a bit. Signed-off-by: Mats Wichmann <mats@linux.com>
Diffstat (limited to 'test/Actions')
-rw-r--r--test/Actions/append.py16
-rw-r--r--test/Actions/function.py64
-rw-r--r--test/Actions/pre-post.py31
3 files changed, 54 insertions, 57 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())