summaryrefslogtreecommitdiffstats
path: root/test/Actions
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/Actions
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/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())