def RemoveUnusedFlags_MultipleDriverModeFlagsWindows_test(): expected = [ 'g++', '--driver-mode=cl', '/Zi', '-foo', '--driver-mode=gcc', '--driver-mode=cl', 'include_dir' ] to_remove = [ 'unrelated_file', '/c' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) flags_expected = [ '/usr/bin/g++', '--driver-mode=cl', '--driver-mode=gcc' ] flags_all = [ '/usr/bin/g++', '/Zi', '--driver-mode=cl', '/foo', '--driver-mode=gcc' ] filename = 'file' eq_( flags_expected, flags._RemoveUnusedFlags( flags_all, filename, _ShouldAllowWinStyleFlags( flags_all ) ) )
def RemoveUnusedFlags_MultipleDriverModeFlagsWindows_test(): expected = [ 'g++', '--driver-mode=cl', '/Zi', '-foo', '--driver-mode=gcc', '--driver-mode=cl', 'include_dir' ] to_remove = ['unrelated_file', '/c'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) flags_expected = ['/usr/bin/g++', '--driver-mode=cl', '--driver-mode=gcc'] flags_all = [ '/usr/bin/g++', '/Zi', '--driver-mode=cl', '/foo', '--driver-mode=gcc' ] filename = 'file' eq_( flags_expected, flags._RemoveUnusedFlags(flags_all, filename, _ShouldAllowWinStyleFlags(flags_all)))
def RemoveUnusedFlags_RemoveFlagWithoutPrecedingDashFlag_test(): expected = ['g++', '-foo', '-x', 'c++', '-bar', 'include_dir'] to_remove = ['unrelated_file'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:])))
def RemoveUnusedFlags_RemoveFlagWithoutPrecedingDashFlag_test(): expected = [ 'g++', '-foo', '-x', 'c++', '-bar', 'include_dir' ] to_remove = [ 'unrelated_file' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) )
def AddLanguageFlagWhenAppropriate_CLDriver_Passthrough_test(): eq_( [ '-foo', '-bar', '--driver-mode=cl' ], flags._AddLanguageFlagWhenAppropriate( [ '-foo', '-bar', '--driver-mode=cl' ], _ShouldAllowWinStyleFlags( [ '-foo', '-bar', '--driver-mode=cl' ] ) ) )
def _AddLanguageFlagWhenAppropriateTester(compiler, language_flag=[]): to_removes = [[], ['/usr/bin/ccache'], ['some_command', 'another_command']] expected = ['-foo', '-bar'] for to_remove in to_removes: eq_([compiler] + language_flag + expected, flags._AddLanguageFlagWhenAppropriate( to_remove + [compiler] + expected, _ShouldAllowWinStyleFlags(to_remove + [compiler] + expected)))
def AddLanguageFlagWhenAppropriate_CLDriver_Passthrough_test(): eq_( [ '-foo', '-bar', '--driver-mode=cl' ], flags._AddLanguageFlagWhenAppropriate( [ '-foo', '-bar', '--driver-mode=cl' ], _ShouldAllowWinStyleFlags( [ '-foo', '-bar', '--driver-mode=cl' ] ) ) )
def tester(flag): expected = ['clang', flag, '/foo/bar', '-isystem/zoo/goo'] eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) eq_( expected + expected[1:], flags._RemoveUnusedFlags( expected + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected + to_remove + expected[1:])))
def RemoveUnusedFlags_RemoveMP_test(): expected = ['-foo', '-bar'] to_remove = ['-MP'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( to_remove + expected, filename, _ShouldAllowWinStyleFlags(to_remove + expected))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[-1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[-1:])))
def tester( flag ): expected = [ 'clang', flag, '/foo/bar', '-isystem/zoo/goo' ] eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) eq_( expected + expected[ 1: ], flags._RemoveUnusedFlags( expected + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected + to_remove + expected[ 1: ] ) ) )
def RemoveUnusedFlags_RemoveMP_test(): expected = [ '-foo', '-bar' ] to_remove = [ '-MP' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( to_remove + expected, filename, _ShouldAllowWinStyleFlags( to_remove + expected ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ -1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ -1: ] ) ) )
def _AddLanguageFlagWhenAppropriateTester( compiler, language_flag = [] ): to_removes = [ [], [ '/usr/bin/ccache' ], [ 'some_command', 'another_command' ] ] expected = [ '-foo', '-bar' ] for to_remove in to_removes: eq_( [ compiler ] + language_flag + expected, flags._AddLanguageFlagWhenAppropriate( to_remove + [ compiler ] + expected, _ShouldAllowWinStyleFlags( to_remove + [ compiler ] + expected ) ) )
def RemoveUnusedFlags_Depfiles_test(): full_flags = [ '/bin/clang', '-x', 'objective-c', '-arch', 'armv7', '-MMD', '-MT', 'dependencies', '-MF', 'file', '--serialize-diagnostics', 'diagnostics' ] expected = [ '/bin/clang', '-x', 'objective-c', '-arch', 'armv7', ] assert_that( flags._RemoveUnusedFlags(full_flags, 'test.m', _ShouldAllowWinStyleFlags(full_flags)), contains(*expected))
def RemoveUnusedFlags_Depfiles_test(): full_flags = [ '/bin/clang', '-x', 'objective-c', '-arch', 'armv7', '-MMD', '-MT', 'dependencies', '-MF', 'file', '--serialize-diagnostics', 'diagnostics' ] expected = [ '/bin/clang', '-x', 'objective-c', '-arch', 'armv7', ] assert_that( flags._RemoveUnusedFlags( full_flags, 'test.m', _ShouldAllowWinStyleFlags( full_flags ) ), contains( *expected ) )
def AddLanguageFlagWhenAppropriate_Passthrough_test(): eq_( [ '-foo', '-bar' ], flags._AddLanguageFlagWhenAppropriate( [ '-foo', '-bar' ], _ShouldAllowWinStyleFlags( [ '-foo', '-bar' ] ) ) )
def AddLanguageFlagWhenAppropriate_Passthrough_test(): eq_(['-foo', '-bar'], flags._AddLanguageFlagWhenAppropriate(['-foo', '-bar'], _ShouldAllowWinStyleFlags( ['-foo', '-bar'])))
def RemoveUnusedFlags_RemoveStrayFilenames_CLDriver_test(): # Only --driver-mode=cl specified. expected = [ 'g++', '-foo', '--driver-mode=cl', '-xc++', '-bar', 'include_dir', '/I', 'include_dir_other' ] to_remove = ['..'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) # clang-cl and --driver-mode=cl expected = [ 'clang-cl.exe', '-foo', '--driver-mode=cl', '-xc++', '-bar', 'include_dir', '/I', 'include_dir_other' ] to_remove = ['unrelated_file'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) # clang-cl only expected = [ 'clang-cl.exe', '-foo', '-xc++', '-bar', 'include_dir', '/I', 'include_dir_other' ] to_remove = ['unrelated_file'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) # clang-cl and --driver-mode=gcc expected = [ 'clang-cl', '-foo', '-xc++', '--driver-mode=gcc', '-bar', 'include_dir' ] to_remove = ['unrelated_file', '/I', 'include_dir_other'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) # cl only with extension expected = ['cl.EXE', '-foo', '-xc++', '-bar', 'include_dir'] to_remove = ['-c', 'path\\to\\unrelated_file'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:]))) # cl path with Windows separators expected = [ 'path\\to\\cl', '-foo', '-xc++', '/I', 'path\\to\\include\\dir' ] to_remove = ['-c', 'path\\to\\unrelated_file'] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags(expected + to_remove))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[1:])))
def RemoveUnusedFlags_Passthrough_test(): eq_( [ '-foo', '-bar' ], flags._RemoveUnusedFlags( [ '-foo', '-bar' ], 'file', _ShouldAllowWinStyleFlags( [ '-foo', '-bar' ] ) ) )
def RemoveUnusedFlags_Passthrough_test(): eq_(['-foo', '-bar'], flags._RemoveUnusedFlags(['-foo', '-bar'], 'file', _ShouldAllowWinStyleFlags(['-foo', '-bar'])))
def RemoveUnusedFlags_RemoveStrayFilenames_CLDriver_test(): # Only --driver-mode=cl specified. expected = [ 'g++', '-foo', '--driver-mode=cl', '-xc++', '-bar', 'include_dir', '/I', 'include_dir_other' ] to_remove = [ '..' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) # clang-cl and --driver-mode=cl expected = [ 'clang-cl.exe', '-foo', '--driver-mode=cl', '-xc++', '-bar', 'include_dir', '/I', 'include_dir_other' ] to_remove = [ 'unrelated_file' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) # clang-cl only expected = [ 'clang-cl.exe', '-foo', '-xc++', '-bar', 'include_dir', '/I', 'include_dir_other' ] to_remove = [ 'unrelated_file' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) # clang-cl and --driver-mode=gcc expected = [ 'clang-cl', '-foo', '-xc++', '--driver-mode=gcc', '-bar', 'include_dir' ] to_remove = [ 'unrelated_file', '/I', 'include_dir_other' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) # cl only with extension expected = [ 'cl.EXE', '-foo', '-xc++', '-bar', 'include_dir' ] to_remove = [ '-c', 'path\\to\\unrelated_file' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) ) # cl path with Windows separators expected = [ 'path\\to\\cl', '-foo', '-xc++', '/I', 'path\\to\\include\\dir' ] to_remove = [ '-c', 'path\\to\\unrelated_file' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, _ShouldAllowWinStyleFlags( expected + to_remove ) ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, _ShouldAllowWinStyleFlags( expected[ :1 ] + to_remove + expected[ 1: ] ) ) )