summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Ward <greg@gerg.ca>2012-03-17 16:04:42 -0400
committerGreg Ward <greg@gerg.ca>2012-03-17 16:04:42 -0400
commit03c292e1f881dd79cc1c9542f0a68b5a5b65333c (patch)
tree558bcd653a53240755e648ca0d23fb7f6d369231
parent110fdc60401b2a5e5d4ac7234f2cb5a60d3b3422 (diff)
downloadscons-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.py6
-rw-r--r--src/engine/SCons/Tool/javacTests.py34
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()