diff options
| author | fergus.henderson <fergushenderson@users.noreply.github.com> | 2010-08-19 19:23:49 +0000 |
|---|---|---|
| committer | fergus.henderson <fergushenderson@users.noreply.github.com> | 2010-08-19 19:23:49 +0000 |
| commit | dc2c66bf523a70178fc486abcbdfa9c2a379dbb1 (patch) | |
| tree | 48f351cb35736f61d160e46eab79e7a0fc22b83a /include_server/parse_command_test.py | |
| parent | f07afd5a0d0150c3cb1b8559d668bbbd31ed1f2e (diff) | |
| download | distcc-git-dc2c66bf523a70178fc486abcbdfa9c2a379dbb1.tar.gz | |
Apply --sysroot patch from Simon Baldwin <simonb@google.com>:
2010-08-18 Simon Baldwin <simonb@google.com>
* include_server/compiler_defaults.py (_SystemSearchdirsGCC):
Add a 'sysroot' parameter. Add --sysroot, if needed, to the gcc
invocation that identifies search directories and default paths.
Add debugging output.
(SetSystemDirsDefaults): Add 'sysroot' parameter. Add another
dictionary level to system_dirs_default for sysroot values.
Add debugging output.
* include_server/parse_command.py (ParseCommandArgs): Identify
and handle arguments of the form '--opt=value'. Pass any
--sysroot value to compiler_defaults.SetSystemDirsDefaults, use
it in compiler_defaults.system_dirs_default lookups.
(CPP_OPTIONS_APPEARING_AS_ASSIGNMENTS): New.
* include_server/parse_command_test.py (Mock_SetSystemDirsDefaults):
Add sysroot parameter, verify it on function calls.
(ParseCommandUnitTest): Add --sysroot to mock gcc invocations.
Diffstat (limited to 'include_server/parse_command_test.py')
| -rwxr-xr-x | include_server/parse_command_test.py | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/include_server/parse_command_test.py b/include_server/parse_command_test.py index 70ccfde..b7ef4e6 100755 --- a/include_server/parse_command_test.py +++ b/include_server/parse_command_test.py @@ -50,19 +50,26 @@ class ParseCommandUnitTest(unittest.TestCase): mock_compiler = '/usr/crosstool/v8/gcc-4.1.0-glibc-2.2.2/blah/gcc' self.mock_compiler = mock_compiler + mock_sysroot = '/usr/local/fake/sysroot' + self.mock_sysroot = mock_sysroot - def Mock_SetSystemDirsDefaults(compiler, language, timer=None): + def Mock_SetSystemDirsDefaults(compiler, sysroot, language, timer=None): if compiler != mock_compiler: raise Exception, "compiler: %s, mock_compiler: %s" % ( compiler, mock_compiler) + if sysroot != mock_sysroot: + raise Exception, "sysroot: %s, mock_sysroot: %s" % ( + sysroot, mock_sysroot) self.compiler_defaults = lambda x: x self.compiler_defaults.SetSystemDirsDefaults = Mock_SetSystemDirsDefaults self.compiler_defaults.system_dirs_default_all = [] self.compiler_defaults.system_dirs_default = {} - self.compiler_defaults.system_dirs_default[mock_compiler] = {} - self.compiler_defaults.system_dirs_default[mock_compiler]['c'] = [] - self.compiler_defaults.system_dirs_default[mock_compiler]['c++'] = [] + system_dirs_default = self.compiler_defaults.system_dirs_default + system_dirs_default[mock_compiler] = {} + system_dirs_default[mock_compiler][mock_sysroot] = {} + system_dirs_default[mock_compiler][mock_sysroot]['c'] = [] + system_dirs_default[mock_compiler][mock_sysroot]['c++'] = [] def tearDown(self): shutil.rmtree(self.tmp) @@ -121,10 +128,12 @@ class ParseCommandUnitTest(unittest.TestCase): quote_dirs, angle_dirs, include_files, filepath, _incl_clos_f, _d_opts = ( parse_command.ParseCommandArgs( parse_command.ParseCommandLine( - self.mock_compiler + " -isystem system -Imice -iquote/and -I/men a.c " - " -include included_A.h " - " -includeincluded_B.h " - "-Xlinker W,l -L /ignored_by_us -o a.o"), + self.mock_compiler + + " --sysroot=" + self.mock_sysroot + + " -isystem system -Imice -iquote/and -I/men a.c " + + " -include included_A.h " + + " -includeincluded_B.h " + + "-Xlinker W,l -L /ignored_by_us -o a.o"), os.getcwd(), self.includepath_map, self.directory_map, @@ -144,7 +153,9 @@ class ParseCommandUnitTest(unittest.TestCase): self.assertRaises(NotCoveredError, parse_command.ParseCommandArgs, parse_command.ParseCommandLine( - self.mock_compiler +" -I- -iquote a.c"), + self.mock_compiler + + " --sysroot=" + self.mock_sysroot + + " -I- -iquote a.c"), os.getcwd(), self.includepath_map, self.directory_map, @@ -153,7 +164,8 @@ class ParseCommandUnitTest(unittest.TestCase): quote_dirs, angle_dirs, include_files, filepath, _incl_cls_file, _d_opts = ( parse_command.ParseCommandArgs(parse_command.ParseCommandLine( "/usr/crosstool/v8/gcc-4.1.0-glibc-2.2.2/blah/gcc" - + " -fno-exceptions -funsigned-char -D__STDC_FORMAT_MACROS -g0" + + " --sysroot=/usr/local/fake/sysroot" + + " -fno-exceptions -funsigned-char -D__STDC_FORMAT_MACROS -g0" + " -D_REENTRANT -DCOMPILER_GCC3 -DCOMPILER_GCC4 -DARCH_PIII -DOS_LINUX" + " -fmessage-length=0 -fno-strict-aliasing -fno-tree-vrp -D_REENTRANT" + " -DHAS_vsnprintf" |
