diff options
author | Greg Ward <greg@gerg.ca> | 2012-03-17 16:04:42 -0400 |
---|---|---|
committer | Greg Ward <greg@gerg.ca> | 2012-03-17 16:04:42 -0400 |
commit | 03c292e1f881dd79cc1c9542f0a68b5a5b65333c (patch) | |
tree | 558bcd653a53240755e648ca0d23fb7f6d369231 | |
parent | 110fdc60401b2a5e5d4ac7234f2cb5a60d3b3422 (diff) | |
download | scons-03c292e1f881dd79cc1c9542f0a68b5a5b65333c.tar.gz |
Add more tests for SCons.Tool.javac.pathopt; fix exposed bugs.
(Specifically, having a default path without setting the corresponding
construction variable did not work.)
-rw-r--r-- | src/engine/SCons/Tool/javac.py | 6 | ||||
-rw-r--r-- | src/engine/SCons/Tool/javacTests.py | 34 |
2 files changed, 32 insertions, 8 deletions
diff --git a/src/engine/SCons/Tool/javac.py b/src/engine/SCons/Tool/javac.py index 20d7a94b..b19f2a13 100644 --- a/src/engine/SCons/Tool/javac.py +++ b/src/engine/SCons/Tool/javac.py @@ -150,7 +150,11 @@ class pathopt(object): if path and not SCons.Util.is_List(path): path = [path] if self.default: - path = path + [ env[self.default] ] + default = env[self.default] + if default: + if not SCons.Util.is_List(default): + default = [default] + path = path + default if path: return [self.opt, os.pathsep.join(map(str, path))] #return self.opt + " " + os.pathsep.join(path) diff --git a/src/engine/SCons/Tool/javacTests.py b/src/engine/SCons/Tool/javacTests.py index 0335437a..fc7f2716 100644 --- a/src/engine/SCons/Tool/javacTests.py +++ b/src/engine/SCons/Tool/javacTests.py @@ -40,6 +40,13 @@ class pathoptTestCase(unittest.TestCase): actual = popt(None, None, env, None) self.assertEquals(expect, actual) + def assert_pathopt_default(self, expect, path, default): + popt = SCons.Tool.javac.pathopt('-foopath', 'FOOPATH', default='DPATH') + env = {'FOOPATH': path, + 'DPATH': default} + actual = popt(None, None, env, None) + self.assertEquals(expect, actual) + def test_unset(self): self.assert_pathopt([], None) self.assert_pathopt([], '') @@ -69,14 +76,27 @@ class pathoptTestCase(unittest.TestCase): self.assert_pathopt(['-foopath', '/foo:/bar'], ['/foo', DummyNode('/bar')]) - def test_default(self): - popt = SCons.Tool.javac.pathopt('-foopath', 'FOOPATH', default='DPATH') - env = {'FOOPATH': ['/foo', '/bar'], - 'DPATH': '/baz'} + def test_default_str(self): + self.assert_pathopt_default( + ['-foopath', '/foo:/bar:/baz'], + ['/foo', '/bar'], + '/baz') - expect = ['-foopath', os.pathsep.join(['/foo', '/bar', '/baz'])] - actual = popt(None, None, env, None) - self.assertEquals(expect, actual) + def test_default_list(self): + self.assert_pathopt_default( + ['-foopath', '/foo:/bar:/baz'], + ['/foo', '/bar'], + ['/baz']) + + def test_default_unset(self): + self.assert_pathopt_default( + ['-foopath', '/foo'], + '/foo', + None) + self.assert_pathopt_default( + ['-foopath', '/foo'], + '/foo', + '') if __name__ == "__main__": unittest.main() |