def test_tool_mod(self): """Test modification of BuildCfg arguments and tool results.""" ccopts = ['-m64'] as_opts = ['--64'] tool_opts = {'as': as_opts} cfg = BuildCfg(self.context, 'x86_64-linux-gnu', tool_prefix='i686-pc-linux-gnu-', ccopts=ccopts, tool_opts=tool_opts) self.assertEqual(cfg.tool('as'), ['i686-pc-linux-gnu-as', '--64']) # Modifying the original tool_opts must not change the results # of the tool method. tool_opts['as'] = ['--32'] self.assertEqual(cfg.tool('as'), ['i686-pc-linux-gnu-as', '--64']) # Likewise for elements of tool_opts. as_opts.append('--other') self.assertEqual(cfg.tool('as'), ['i686-pc-linux-gnu-as', '--64']) # Likewise, for ccopts. ccopts.append('-mavx') self.assertEqual(cfg.tool('gcc'), ['i686-pc-linux-gnu-gcc', '-m64']) # Modifying the result is also OK. res1 = cfg.tool('gcc') res1.append('-mavx') res2 = cfg.tool('gcc') self.assertEqual(res1, ['i686-pc-linux-gnu-gcc', '-m64', '-mavx']) self.assertEqual(res2, ['i686-pc-linux-gnu-gcc', '-m64'])
def test_tool_basic(self): """Test basic use of the tool method.""" cfg = BuildCfg(self.context, 'aarch64-linux-gnu') self.assertEqual(cfg.tool('gcc'), ['aarch64-linux-gnu-gcc']) self.assertEqual(cfg.tool('c-compiler'), ['aarch64-linux-gnu-gcc']) self.assertEqual(cfg.tool('c++-compiler'), ['aarch64-linux-gnu-g++']) cfg = BuildCfg(self.context, 'i686-pc-linux-gnu', tool_prefix='i386-linux-') self.assertEqual(cfg.tool('ld'), ['i386-linux-ld']) cfg = BuildCfg(self.context, 'x86_64-linux-gnu', tool_prefix='i686-pc-linux-gnu-', ccopts=['-m64'], tool_opts={'as': ['--64']}) self.assertEqual(cfg.tool('objdump'), ['i686-pc-linux-gnu-objdump']) self.assertEqual(cfg.tool('c-compiler'), ['i686-pc-linux-gnu-gcc', '-m64']) self.assertEqual(cfg.tool('c++-compiler'), ['i686-pc-linux-gnu-g++', '-m64']) self.assertEqual(cfg.tool('c++'), ['i686-pc-linux-gnu-c++', '-m64']) self.assertEqual(cfg.tool('cpp'), ['i686-pc-linux-gnu-cpp', '-m64']) self.assertEqual(cfg.tool('g++'), ['i686-pc-linux-gnu-g++', '-m64']) self.assertEqual(cfg.tool('gcc'), ['i686-pc-linux-gnu-gcc', '-m64']) self.assertEqual(cfg.tool('as'), ['i686-pc-linux-gnu-as', '--64']) cfg = BuildCfg(self.context, 'x86_64-linux-gnu', tool_prefix='i686-pc-linux-gnu-', ccopts=['-m64'], tool_opts={'g++': ['-fsomething']}) self.assertEqual(cfg.tool('c-compiler'), ['i686-pc-linux-gnu-gcc', '-m64']) self.assertEqual(cfg.tool('c++-compiler'), ['i686-pc-linux-gnu-g++', '-m64', '-fsomething']) self.assertEqual(cfg.tool('g++'), ['i686-pc-linux-gnu-g++', '-m64', '-fsomething']) self.assertEqual(cfg.tool('ld'), ['i686-pc-linux-gnu-ld'])