3 # Copyright The SCons Foundation
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:
13 # The above copyright notice and this permission notice shall be included
14 # in all copies or substantial portions of the Software.
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 #! /usr/bin/env python
26 Support functions for all the tests.
29 if __name__
== '__main__':
32 sys
.path
.append(os
.path
.abspath('../../../src/engine'))
34 from SCons
.Environment
import Base
36 path
= Base()['ENV']['PATH']
38 def isExecutableOfToolAvailable(test
, tool
):
40 'dmd': ['dmd', 'gdmd'],
42 'ldc': ['ldc2', 'ldc'],
44 if test
.where_is(executable
, path
):
49 if __name__
== '__main__':
51 sys
.path
.append(os
.path
.abspath('../../../testing/framework'))
55 class VariousTests(unittest
.TestCase
):
57 These tests are somewhat self referential in that
58 isExecutableOfToolAvailable uses where_is to do most of it's
59 work and we use the same function in the tests.
62 self
.test
= TestSCons
.TestSCons()
67 def test_None_tool(self
):
68 self
.assertRaises(KeyError, isExecutableOfToolAvailable
, self
.test
, None)
70 def test_dmd_tool(self
):
72 self
.test
.where_is('dmd', path
) is not None or self
.test
.where_is('gdmd', path
) is not None,
73 isExecutableOfToolAvailable(self
.test
, 'dmd'))
75 def test_gdc_tool(self
):
77 self
.test
.where_is('gdc', path
) is not None,
78 isExecutableOfToolAvailable(self
.test
, 'gdc'))
80 def test_ldc_tool(self
):
82 self
.test
.where_is('ldc2', path
) is not None or self
.test
.where_is('ldc', path
) is not None,
83 isExecutableOfToolAvailable(self
.test
, 'ldc'))