예제 #1
0
 def test_flags_debug(self):
     self.assertEqual(self.compiler.flags(opts.option_list(
         opts.debug()
     )), ['/Zi', '/MDd'])
     self.assertEqual(self.compiler.flags(opts.option_list(
         opts.debug(), opts.static()
     )), ['/Zi', '/MTd'])
예제 #2
0
    def test_flags_debug(self):
        self.assertEqual(self.compiler.flags(opts.option_list(opts.debug())),
                         ['-g'])

        version = ('Scala code runner version 2.11.6 -- ' +
                   'Copyright 2002-2013, LAMP/EPFL')
        with mock.patch('bfg9000.shell.which', mock_which):
            scala_compiler = JvmBuilder(self.env, known_langs['scala'],
                                        ['scalac'], True, version).compiler
        self.assertEqual(scala_compiler.flags(opts.option_list(opts.debug())),
                         ['-g:vars'])
예제 #3
0
 def test_empty(self):
     self.assertEqual(
         post_install(self.env, opts.option_list(), self.exe,
                      self.install_db), None)
     self.assertEqual(
         post_install(self.env, opts.option_list(opts.debug()), self.exe,
                      self.install_db), None)
예제 #4
0
    def test_link_options(self):
        solution = Solution(mock.MagicMock())
        self.context['global_link_options'](opts.debug())

        with mock.patch('logging.log'):
            src = self.context['source_file']('main.cpp')
            result = self.context['executable'](
                'exe', src, link_options=['/FOO'], libs='libfoo'
            )

        link.msbuild_link(result.creator, self.build, solution, self.env)
        self.assertSubdict(solution[result].link_options, {
            'debug': True,
        })
예제 #5
0
    def test_local_options(self):
        solution = Solution(mock.MagicMock())
        self.context['global_options'](opts.debug(), lang='c++')
        with mock.patch('logging.log'):
            src = self.context['source_file']('main.cpp')
            result = self.context['executable']('exe', src)

        link.msbuild_link(result.creator, self.build, solution, self.env)
        self.assertSubdict(solution[result].compile_options, {
            'debug': 'pdb',
            'runtime': None,
        })
        self.assertSubdict(solution[result].files[0]['options'], {
            'debug': None,
            'runtime': 'dynamic-debug',
        })
예제 #6
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()])

        makefile = make.Makefile(None)
        with mock.patch.object(make.Makefile, 'rule') as mrule, \
             mock.patch.object(make.Makefile, 'variable',
                               wraps=makefile.variable) as mvar, \
             mock.patch('logging.log'):
            compile.make_compile(result.creator, build, makefile, env)
            mrule.assert_called_once_with(result, [src], [], AlwaysEqual(), {
                make.var('CXXFLAGS'): [make.var('GLOBAL_CXXFLAGS'), '/MTd']
            }, None)
            mvar.assert_any_call('GLOBAL_CXXFLAGS', ['/Zi'],
                                 make.Section.flags, True)
예제 #7
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)
예제 #8
0
 def test_flags_debug(self):
     self.assertEqual(self.linker.flags(opts.option_list(opts.debug())),
                      ['-g'])
예제 #9
0
 def test_flags_debug(self):
     self.assertEqual(self.compiler.flags(opts.option_list(opts.debug())),
                      ['/Zi'])