diff options
Diffstat (limited to 'test/toolpath/basic.py')
-rw-r--r-- | test/toolpath/basic.py | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/test/toolpath/basic.py b/test/toolpath/basic.py new file mode 100644 index 0000000..7e08f8a --- /dev/null +++ b/test/toolpath/basic.py @@ -0,0 +1,162 @@ +#!/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__" + +import os.path +import sys +import time +import TestSCons + +test = TestSCons.TestSCons() + +test.write('SConstruct', """ +def foo(env): + env['TOOL_FOO'] = 1 + +env1 = Environment(tools=[foo, 'bar'], toolpath=['tools']) +print "env1['TOOL_FOO'] =", env1.get('TOOL_FOO') +print "env1['TOOL_BAR'] =", env1.get('TOOL_BAR') + +# pick a built-in tool with pretty simple behavior +env2 = Environment(tools=['SCCS']) +print "env2['SCCS'] =", env2.get('SCCS') +print "env2['TOOL_SCCS1'] =", env2.get('TOOL_SCCS1') +print "env2['TOOL_SCCS2'] =", env2.get('TOOL_SCCS2') + +env3 = Environment(tools=['SCCS'], toolpath=['.']) +print "env3['SCCS'] =", env3.get('SCCS') +print "env3['TOOL_SCCS1'] =", env3.get('TOOL_SCCS1') +print "env3['TOOL_SCCS2'] =", env3.get('TOOL_SCCS2') + +env4 = Environment(tools=['SCCS'], toolpath=['tools']) +print "env4['SCCS'] =", env4.get('SCCS') +print "env4['TOOL_SCCS1'] =", env4.get('TOOL_SCCS1') +print "env4['TOOL_SCCS2'] =", env4.get('TOOL_SCCS2') + +env5 = Environment(tools=['SCCS'], toolpath=['tools', '.']) +print "env5['SCCS'] =", env5.get('SCCS') +print "env5['TOOL_SCCS1'] =", env5.get('TOOL_SCCS1') +print "env5['TOOL_SCCS2'] =", env5.get('TOOL_SCCS2') + +env6 = Environment(tools=['SCCS'], toolpath=['.', 'tools']) +print "env6['SCCS'] =", env6.get('SCCS') +print "env6['TOOL_SCCS1'] =", env6.get('TOOL_SCCS1') +print "env6['TOOL_SCCS2'] =", env6.get('TOOL_SCCS2') + +env7 = Environment(TOOLPATH="tools", tools=['SCCS'], toolpath=['$TOOLPATH']) +print "env7['SCCS'] =", env7.get('SCCS') +print "env7['TOOL_SCCS1'] =", env7.get('TOOL_SCCS1') +print "env7['TOOL_SCCS2'] =", env7.get('TOOL_SCCS2') + +env8 = Environment(tools=[]) +env8.Tool('SCCS', toolpath=['tools']) +print "env8['SCCS'] =", env8.get('SCCS') +print "env8['TOOL_SCCS1'] =", env8.get('TOOL_SCCS1') +print "env8['TOOL_SCCS2'] =", env8.get('TOOL_SCCS2') + +env9 = Environment(tools=[]) +Tool('SCCS', toolpath=['tools'])(env9) +print "env9['SCCS'] =", env9.get('SCCS') +print "env9['TOOL_SCCS1'] =", env9.get('TOOL_SCCS1') +print "env9['TOOL_SCCS2'] =", env9.get('TOOL_SCCS2') + +env0 = Environment(TOOLPATH='tools', tools=[]) +env0.Tool('SCCS', toolpath=['$TOOLPATH']) +print "env0['SCCS'] =", env0.get('SCCS') +print "env0['TOOL_SCCS1'] =", env0.get('TOOL_SCCS1') +print "env0['TOOL_SCCS2'] =", env0.get('TOOL_SCCS2') + +base = Environment(tools=[], toolpath=['tools']) +derived = base.Clone(tools=['bar']) +print "derived['TOOL_BAR'] =", derived.get('TOOL_BAR') +""") + +test.write('SCCS.py', r"""\ +def generate(env): + env['TOOL_SCCS1'] = 1 +def exists(env): + return 1 +""") + +test.subdir('tools') + +test.write(['tools', 'Common.py'], r"""\ +One = 1 +""") + +test.write(['tools', 'SCCS.py'], r"""\ +import Common +def generate(env): + env['TOOL_SCCS2'] = Common.One +def exists(env): + return Common.One +""") + +test.write(['tools', 'bar.py'], r"""\ +def generate(env): + env['TOOL_BAR'] = 1 +def exists(env): + return 1 +""") + +test.run(arguments = '.', stdout = """\ +scons: Reading SConscript files ... +env1['TOOL_FOO'] = 1 +env1['TOOL_BAR'] = 1 +env2['SCCS'] = sccs +env2['TOOL_SCCS1'] = None +env2['TOOL_SCCS2'] = None +env3['SCCS'] = None +env3['TOOL_SCCS1'] = 1 +env3['TOOL_SCCS2'] = None +env4['SCCS'] = None +env4['TOOL_SCCS1'] = None +env4['TOOL_SCCS2'] = 1 +env5['SCCS'] = None +env5['TOOL_SCCS1'] = None +env5['TOOL_SCCS2'] = 1 +env6['SCCS'] = None +env6['TOOL_SCCS1'] = 1 +env6['TOOL_SCCS2'] = None +env7['SCCS'] = None +env7['TOOL_SCCS1'] = None +env7['TOOL_SCCS2'] = 1 +env8['SCCS'] = None +env8['TOOL_SCCS1'] = None +env8['TOOL_SCCS2'] = 1 +env9['SCCS'] = None +env9['TOOL_SCCS1'] = None +env9['TOOL_SCCS2'] = 1 +env0['SCCS'] = None +env0['TOOL_SCCS1'] = None +env0['TOOL_SCCS2'] = 1 +derived['TOOL_BAR'] = 1 +scons: done reading SConscript files. +scons: Building targets ... +scons: `.' is up to date. +scons: done building targets. +""") + +test.pass_test() |