Skip to content

Commit ccaffe9

Browse files
committed
cleaning up tool initialization to speed up tests
1 parent 278e0d3 commit ccaffe9

File tree

9 files changed

+891
-889
lines changed

9 files changed

+891
-889
lines changed

test/Batch/Boolean.py

Lines changed: 81 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,81 @@
1-
#!/usr/bin/env python
2-
#
3-
# __COPYRIGHT__
4-
#
5-
# Permission is hereby granted, free of charge, to any person obtaining
6-
# a copy of this software and associated documentation files (the
7-
# "Software"), to deal in the Software without restriction, including
8-
# without limitation the rights to use, copy, modify, merge, publish,
9-
# distribute, sublicense, and/or sell copies of the Software, and to
10-
# permit persons to whom the Software is furnished to do so, subject to
11-
# the following conditions:
12-
#
13-
# The above copyright notice and this permission notice shall be included
14-
# in all copies or substantial portions of the Software.
15-
#
16-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
17-
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
18-
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19-
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20-
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21-
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22-
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23-
#
24-
25-
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
26-
27-
"""
28-
Verify basic use of batch_key to write a batch builder that handles
29-
arbitrary pairs of target + source files.
30-
"""
31-
32-
import TestSCons
33-
34-
test = TestSCons.TestSCons()
35-
36-
test.write('SConstruct', """
37-
def batch_build(target, source, env):
38-
for t, s in zip(target, source):
39-
with open(str(t), 'wb') as f, open(str(s), 'rb') as infp:
40-
f.write(infp.read())
41-
env = Environment()
42-
bb = Action(batch_build, batch_key=True)
43-
env['BUILDERS']['Batch'] = Builder(action=bb)
44-
env1 = env.Clone()
45-
env1.Batch('f1a.out', 'f1a.in')
46-
env1.Batch('f1b.out', 'f1b.in')
47-
env2 = env.Clone()
48-
env2.Batch('f2a.out', 'f2a.in')
49-
env3 = env.Clone()
50-
env3.Batch('f3a.out', 'f3a.in')
51-
env3.Batch('f3b.out', 'f3b.in')
52-
""")
53-
54-
test.write('f1a.in', "f1a.in\n")
55-
test.write('f1b.in', "f1b.in\n")
56-
test.write('f2a.in', "f2a.in\n")
57-
test.write('f3a.in', "f3a.in\n")
58-
test.write('f3b.in', "f3b.in\n")
59-
60-
expect = test.wrap_stdout("""\
61-
batch_build(["f1a.out", "f1b.out"], ["f1a.in", "f1b.in"])
62-
batch_build(["f2a.out"], ["f2a.in"])
63-
batch_build(["f3a.out", "f3b.out"], ["f3a.in", "f3b.in"])
64-
""")
65-
66-
test.run(stdout = expect)
67-
68-
test.must_match('f1a.out', "f1a.in\n")
69-
test.must_match('f1b.out', "f1b.in\n")
70-
test.must_match('f2a.out', "f2a.in\n")
71-
test.must_match('f3a.out', "f3a.in\n")
72-
test.must_match('f3b.out', "f3b.in\n")
73-
74-
test.pass_test()
75-
76-
# Local Variables:
77-
# tab-width:4
78-
# indent-tabs-mode:nil
79-
# End:
80-
# vim: set expandtab tabstop=4 shiftwidth=4:
1+
#!/usr/bin/env python
2+
#
3+
# MIT License
4+
#
5+
# Copyright The SCons Foundation
6+
#
7+
# Permission is hereby granted, free of charge, to any person obtaining
8+
# a copy of this software and associated documentation files (the
9+
# "Software"), to deal in the Software without restriction, including
10+
# without limitation the rights to use, copy, modify, merge, publish,
11+
# distribute, sublicense, and/or sell copies of the Software, and to
12+
# permit persons to whom the Software is furnished to do so, subject to
13+
# the following conditions:
14+
#
15+
# The above copyright notice and this permission notice shall be included
16+
# in all copies or substantial portions of the Software.
17+
#
18+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
19+
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
20+
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25+
26+
"""
27+
Verify basic use of batch_key to write a batch builder that handles
28+
arbitrary pairs of target + source files.
29+
"""
30+
31+
import TestSCons
32+
33+
test = TestSCons.TestSCons()
34+
35+
test.write('SConstruct', """
36+
DefaultEnvironment(tools=[])
37+
38+
def batch_build(target, source, env):
39+
for t, s in zip(target, source):
40+
with open(str(t), 'wb') as f, open(str(s), 'rb') as infp:
41+
f.write(infp.read())
42+
env = Environment(tools=[])
43+
bb = Action(batch_build, batch_key=True)
44+
env['BUILDERS']['Batch'] = Builder(action=bb)
45+
env1 = env.Clone()
46+
env1.Batch('f1a.out', 'f1a.in')
47+
env1.Batch('f1b.out', 'f1b.in')
48+
env2 = env.Clone()
49+
env2.Batch('f2a.out', 'f2a.in')
50+
env3 = env.Clone()
51+
env3.Batch('f3a.out', 'f3a.in')
52+
env3.Batch('f3b.out', 'f3b.in')
53+
""")
54+
55+
test.write('f1a.in', "f1a.in\n")
56+
test.write('f1b.in', "f1b.in\n")
57+
test.write('f2a.in', "f2a.in\n")
58+
test.write('f3a.in', "f3a.in\n")
59+
test.write('f3b.in', "f3b.in\n")
60+
61+
expect = test.wrap_stdout("""\
62+
batch_build(["f1a.out", "f1b.out"], ["f1a.in", "f1b.in"])
63+
batch_build(["f2a.out"], ["f2a.in"])
64+
batch_build(["f3a.out", "f3b.out"], ["f3a.in", "f3b.in"])
65+
""")
66+
67+
test.run(stdout = expect)
68+
69+
test.must_match('f1a.out', "f1a.in\n")
70+
test.must_match('f1b.out', "f1b.in\n")
71+
test.must_match('f2a.out', "f2a.in\n")
72+
test.must_match('f3a.out', "f3a.in\n")
73+
test.must_match('f3b.out', "f3b.in\n")
74+
75+
test.pass_test()
76+
77+
# Local Variables:
78+
# tab-width:4
79+
# indent-tabs-mode:nil
80+
# End:
81+
# vim: set expandtab tabstop=4 shiftwidth=4:

0 commit comments

Comments
 (0)