Example #1
0
    def test_no_install(self):
        ninjafile = ninja.NinjaFile(None)

        with mock.patch.object(ninja.NinjaFile, 'build') as mbuild, \
             mock.patch('logging.log'):
            install.ninja_install_rule(self.build, ninjafile, self.env)
            mbuild.assert_not_called()
Example #2
0
    def test_install(self):
        ninjafile = ninja.NinjaFile(None)
        src = self.context['source_file']('main.cpp')
        exe = self.context['executable']('exe', src)
        self.context['install'](exe)

        with mock.patch.object(ninja.NinjaFile, 'build') as mbuild, \
             mock.patch.object(ninja.NinjaFile, 'has_build',
                               return_value=True), \
             mock.patch('logging.log'):  # noqa
            install.ninja_install_rule(self.build, ninjafile, self.env)
            self.assertEqual(mbuild.mock_calls, [
                mock.call(output='install',
                          inputs=['all'],
                          implicit=['PHONY'],
                          order_only=None,
                          rule='command',
                          variables=AlwaysEqual()),
                mock.call(output='uninstall',
                          inputs=None,
                          implicit=['PHONY'],
                          order_only=None,
                          rule='command',
                          variables=AlwaysEqual()),
            ])
Example #3
0
    def test_extra_deps(self):
        dep = self.context['generic_file']('dep.txt')
        obj = self.context['object_file']('main.o')
        result = self.context['executable']('exe', obj, extra_deps=dep)

        ninjafile = ninja.NinjaFile(None)
        with mock.patch.object(ninja.NinjaFile, 'build') as mbuild:
            link.ninja_link(result.creator, self.build, ninjafile, self.env)
        mbuild.assert_called_once_with(
            output=[result], rule='cc_link', inputs=[obj], implicit=[dep],
            variables=self._variables()
        )
Example #4
0
    def test_simple(self):
        ninjafile = ninja.NinjaFile(None)
        src = self.context['source_file']('main.cpp')
        result = self.context['object_file'](file=src)

        with mock.patch.object(ninja.NinjaFile, 'build') as mbuild:
            compile.ninja_compile(result.creator, self.build, ninjafile,
                                  self.env)
            mbuild.assert_called_once_with(
                output=[result], rule='cxx', inputs=[src], implicit=[],
                variables=AlwaysEqual(),
            )
Example #5
0
    def test_local_options(self):
        env = make_env('winnt', clear_variables=True,
                       variables={'CXX': 'nonexist'})
        build, context = self._make_context(env)
        with mock.patch('bfg9000.tools.c_family._builders', (MsvcBuilder,)), \
             mock.patch('logging.log'):
            context['global_options'](opts.debug(), lang='c++')
            src = context['source_file']('main.cpp')
            result = context['object_file'](file=src, options=[opts.static()])

        ninjafile = ninja.NinjaFile(None)
        with mock.patch.object(ninja.NinjaFile, 'build') as mbuild, \
             mock.patch.object(ninja.NinjaFile, 'variable',
                               wraps=ninjafile.variable) as mvar:
            compile.ninja_compile(result.creator, build, ninjafile, env)
            mbuild.assert_called_once_with(
                output=[result], rule='cxx', inputs=[src], implicit=[],
                variables={ninja.var('cxxflags'): [
                    ninja.var('global_cxxflags'), '/MTd'
                ]},
            )
            mvar.assert_any_call('global_cxxflags', ['/Zi'],
                                 ninja.Section.flags, True)