summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/EnvironmentTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-10-18 19:22:25 (GMT)
committerSteven Knight <knight@baldmt.com>2003-10-18 19:22:25 (GMT)
commitb90dddb296662773271085006a4f8f5a2cad37d3 (patch)
treeeb654ea23be6a82f3a29d8b451e652d9cd2e883b /src/engine/SCons/EnvironmentTests.py
parent23811fae3edfd27d5577f2ced8829931d09931fa (diff)
downloadSCons-b90dddb296662773271085006a4f8f5a2cad37d3.zip
SCons-b90dddb296662773271085006a4f8f5a2cad37d3.tar.gz
SCons-b90dddb296662773271085006a4f8f5a2cad37d3.tar.bz2
Allow SConsignFile() to take a dbm module argument; portability fixes. (Ralf W. Grosse-Kunstleve) Make ParseConfig() and env.Append() work regardless of initial construction variable values. Make new Dir() support work with empty directories and timestamps. Make the new Queue-based Job implementation portable to Python 1.5.2.
Diffstat (limited to 'src/engine/SCons/EnvironmentTests.py')
-rw-r--r--src/engine/SCons/EnvironmentTests.py105
1 files changed, 77 insertions, 28 deletions
diff --git a/src/engine/SCons/EnvironmentTests.py b/src/engine/SCons/EnvironmentTests.py
index 49d6ac7..2ad0a32 100644
--- a/src/engine/SCons/EnvironmentTests.py
+++ b/src/engine/SCons/EnvironmentTests.py
@@ -724,20 +724,58 @@ class EnvironmentTestCase(unittest.TestCase):
import UserList
UL = UserList.UserList
- env1 = Environment(AAA = 'a', BBB = 'b', CCC = 'c', DDD = 'd',
- EEE = ['e'], FFF = ['f'], GGG = ['g'], HHH = ['h'],
- III = UL(['i']), JJJ = UL(['j']),
- KKK = UL(['k']), LLL = UL(['l']))
- env1.Append(BBB = 'B', CCC = ['C'], DDD = UL(['D']),
- FFF = 'F', GGG = ['G'], HHH = UL(['H']),
- JJJ = 'J', KKK = ['K'], LLL = UL(['L']))
- env2 = Environment(AAA = 'a', BBB = 'bB',
- CCC = ['c', 'C'], DDD = UL(['d', 'D']),
- EEE = ['e'], FFF = ['f', 'F'],
- GGG = ['g', 'G'], HHH = UL(['h', 'H']),
- III = UL(['i']), JJJ = UL(['j', 'J']),
- KKK = UL(['k', 'K']), LLL = UL(['l', 'L']))
- assert env1 == env2, diff_env(env1, env2)
+ env1 = Environment(AAA = 'a',
+ AAA1 = 'a1', AAA2 = 'a2', AAA3 = 'a3',
+ EEE = ['e'],
+ EEE1 = ['e1'], EEE2 = ['e2'], EEE3 = ['e3'],
+ III = UL(['i']),
+ III1 = UL(['i1']), III2 = UL(['i2']), III3 = UL(['i3']),
+ MMM = '',
+ MMM1 = '', MMM2 = '', MMM3 = '',
+ NNN = [],
+ NNN1 = [], NNN2 = [], NNN3 = [],
+ OOO = UL([]),
+ OOO1 = UL([]), OOO2 = UL([]), OOO3 = UL([]),
+ PPP = [''],
+ PPP1 = [''], PPP2 = [''], PPP3 = [''],
+ QQQ = UL(['']),
+ QQQ1 = UL(['']), QQQ2 = UL(['']), QQQ3 = UL(['']))
+ env1.Append(AAA1 = 'A1', AAA2 = ['A2'], AAA3 = UL(['A3']),
+ EEE1 = 'E1', EEE2 = ['E2'], EEE3 = UL(['E3']),
+ III1 = 'I1', III2 = ['I2'], III3 = UL(['I3']),
+ MMM1 = 'M1', MMM2 = ['M2'], MMM3 = UL(['M3']),
+ NNN1 = 'N1', NNN2 = ['N2'], NNN3 = UL(['N3']),
+ OOO1 = 'O1', OOO2 = ['O2'], OOO3 = UL(['O3']),
+ PPP1 = 'P1', PPP2 = ['P2'], PPP3 = UL(['P3']),
+ QQQ1 = 'Q1', QQQ2 = ['Q2'], QQQ3 = UL(['Q3']))
+ assert env1['AAA'] == 'a', env1['AAA']
+ assert env1['AAA1'] == 'a1A1', env1['AAA1']
+ assert env1['AAA2'] == ['a2', 'A2'], env1['AAA2']
+ assert env1['AAA3'] == UL(['a3', 'A3']), env1['AAA3']
+ assert env1['EEE'] == ['e'], env1['EEE']
+ assert env1['EEE1'] == ['e1', 'E1'], env1['EEE1']
+ assert env1['EEE2'] == ['e2', 'E2'], env1['EEE2']
+ assert env1['EEE3'] == UL(['e3', 'E3']), env1['EEE3']
+ assert env1['III'] == UL(['i']), env1['III']
+ assert env1['III1'] == UL(['i1', 'I1']), env1['III1']
+ assert env1['III2'] == UL(['i2', 'I2']), env1['III2']
+ assert env1['III3'] == UL(['i3', 'I3']), env1['III3']
+ assert env1['MMM'] == '', env1['MMM']
+ assert env1['MMM1'] == 'M1', env1['MMM1']
+ assert env1['MMM2'] == ['M2'], env1['MMM2']
+ assert env1['MMM3'] == UL(['M3']), env1['MMM3']
+ assert env1['NNN1'] == ['N1'], env1['NNN1']
+ assert env1['NNN2'] == ['N2'], env1['NNN2']
+ assert env1['NNN3'] == UL(['N3']), env1['NNN3']
+ assert env1['OOO1'] == ['O1'], env1['OOO1']
+ assert env1['OOO2'] == ['O2'], env1['OOO2']
+ assert env1['OOO3'] == UL(['O3']), env1['OOO3']
+ assert env1['PPP1'] == ['', 'P1'], env1['PPP1']
+ assert env1['PPP2'] == ['', 'P2'], env1['PPP2']
+ assert env1['PPP3'] == UL(['', 'P3']), env1['PPP3']
+ assert env1['QQQ1'] == UL(['', 'Q1']), env1['QQQ1']
+ assert env1['QQQ2'] == UL(['', 'Q2']), env1['QQQ2']
+ assert env1['QQQ3'] == UL(['', 'Q3']), env1['QQQ3']
env3 = Environment(X = {'x1' : 7})
env3.Append(X = {'x1' : 8, 'x2' : 9}, Y = {'y1' : 10})
@@ -946,7 +984,11 @@ class EnvironmentTestCase(unittest.TestCase):
def test_ParseConfig(self):
"""Test the ParseConfig() method"""
- env = Environment(COMMAND='command')
+ env = Environment(COMMAND='command',
+ CPPPATH='string',
+ LIBPATH=['list'],
+ LIBS='',
+ CCFLAGS=[''])
save_command = []
orig_popen = os.popen
def my_popen(command, save_command=save_command):
@@ -961,10 +1003,10 @@ class EnvironmentTestCase(unittest.TestCase):
libs = env.ParseConfig("fake $COMMAND")
assert save_command == ['fake command'], save_command
assert libs == ['abc'], libs
- assert env['CPPPATH'] == ['/usr/include/fum', 'bar'], env['CPPPATH']
- assert env['LIBPATH'] == ['/usr/fax', 'foo'], env['LIBPATH']
+ assert env['CPPPATH'] == ['string', '/usr/include/fum', 'bar'], env['CPPPATH']
+ assert env['LIBPATH'] == ['list', '/usr/fax', 'foo'], env['LIBPATH']
assert env['LIBS'] == ['xxx'], env['LIBS']
- assert env['CCFLAGS'] == ['-X'], env['CCFLAGS']
+ assert env['CCFLAGS'] == ['', '-X'], env['CCFLAGS']
finally:
os.popen = orig_popen
@@ -1723,27 +1765,34 @@ class EnvironmentTestCase(unittest.TestCase):
env.fs = MyFS()
try:
- save = []
- def capture(name, save=save):
- save.append(name)
+ fnames = []
+ dbms = []
+ def capture(name, dbm_module, fnames=fnames, dbms=dbms):
+ fnames.append(name)
+ dbms.append(dbm_module)
save_Sig_SConsignFile = SCons.Sig.SConsignFile
SCons.Sig.SConsignFile = capture
env.SConsignFile('foo')
- assert save[0] == os.path.join(os.sep, 'dir', 'foo'), save
+ assert fnames[0] == os.path.join(os.sep, 'dir', 'foo'), fnames
+ assert dbms[0] == None, dbms
env.SConsignFile('$FOO')
- assert save[1] == os.path.join(os.sep, 'dir', 'SConsign'), save
+ assert fnames[1] == os.path.join(os.sep, 'dir', 'SConsign'), fnames
+ assert dbms[1] == None, dbms
env.SConsignFile('/$FOO')
- assert save[2] == '/SConsign', save
+ assert fnames[2] == '/SConsign', fnames
+ assert dbms[2] == None, dbms
- env.SConsignFile('$BAR')
- assert save[3] == os.path.join(os.sep, 'File'), save
+ env.SConsignFile('$BAR', 'x')
+ assert fnames[3] == os.path.join(os.sep, 'File'), fnames
+ assert dbms[3] == 'x', dbms
- env.SConsignFile('__$BAR')
- assert save[4] == os.path.join(os.sep, 'dir', '__', 'File'), save
+ env.SConsignFile('__$BAR', 7)
+ assert fnames[4] == os.path.join(os.sep, 'dir', '__', 'File'), fnames
+ assert dbms[4] == 7, dbms
finally:
SCons.Sig.SConsignFile = save_Sig_SConsignFile