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()
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()), ])
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() )
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(), )
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)