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, False)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[1:], filename, False)) 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, True)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[1:], filename, True))
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)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[1:], filename))
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 ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename ) )
def RemoveUnusedFlags_RemoveColor_test(): expected = ['-foo', '-bar'] to_remove = ['--fcolor-diagnostics'] filename = 'file' eq_(expected, flags._RemoveUnusedFlags(expected + to_remove, filename)) eq_(expected, flags._RemoveUnusedFlags(to_remove + expected, filename)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[-1:], filename))
def RemoveUnusedFlags_RemoveMP_test(): expected = ['-foo', '-bar'] to_remove = ['-MP'] filename = 'file' eq_(expected, flags._RemoveUnusedFlags(expected + to_remove, filename)) eq_(expected, flags._RemoveUnusedFlags(to_remove + expected, filename)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[-1:], filename))
def tester( flag ): expected = [ 'clang', flag, '/foo/bar', '-isystem/zoo/goo' ] eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename ) ) eq_( expected + expected[ 1: ], flags._RemoveUnusedFlags( expected + to_remove + expected[ 1: ], filename ) )
def RemoveUnusedFlags_RemoveColor_test(): expected = [ '-foo', '-bar' ] to_remove = [ '--fcolor-diagnostics' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename ) ) eq_( expected, flags._RemoveUnusedFlags( to_remove + expected, filename ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ -1: ], filename ) )
def RemoveUnusedFlags_RemoveDashO_test(): expected = [ '-foo', '-bar' ] to_remove = [ '-o', 'output_name' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, False ) ) eq_( expected, flags._RemoveUnusedFlags( to_remove + expected, filename, False ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ -1: ], filename, False ) )
def RemoveUnusedFlags_RemoveDashC_test(): expected = [ '-foo', '-bar' ] to_remove = [ '-c' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename ) ) eq_( expected, flags._RemoveUnusedFlags( to_remove + expected, filename ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ -1: ], filename ) )
def RemoveUnusedFlags_RemoveDashO_test(): expected = ['-foo', '-bar'] to_remove = ['-o', 'output_name'] filename = 'file' eq_(expected, flags._RemoveUnusedFlags(expected + to_remove, filename, False)) eq_(expected, flags._RemoveUnusedFlags(to_remove + expected, filename, False)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[-1:], filename, False))
def RemoveUnusedFlags_RemoveFilename_test(): expected = [ 'foo', '-bar' ] to_remove = [ 'file' ] filename = 'file' eq_( expected, flags._RemoveUnusedFlags( expected + to_remove, filename, False ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, False ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ -1: ], filename, False ) )
def RemoveUnusedFlags_RemoveFilename_test(): expected = ['foo', '-bar'] to_remove = ['file'] filename = 'file' eq_(expected, flags._RemoveUnusedFlags(expected + to_remove, filename, False)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[1:], filename, False)) eq_( expected, flags._RemoveUnusedFlags(expected[:1] + to_remove + expected[-1:], filename, False))
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, False ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, False ) ) 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, True ) ) eq_( expected, flags._RemoveUnusedFlags( expected[ :1 ] + to_remove + expected[ 1: ], filename, True ) )
def RemoveUnusedFlags_RemoveDashO_test(): expected = ['-foo', '-bar'] to_remove = ['-o', 'output_name'] 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 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 RemoveUnusedFlags_RemoveFilename_test(): expected = ['foo', '-bar'] to_remove = ['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:]))) eq_( expected, flags._RemoveUnusedFlags( expected[:1] + to_remove + expected[-1:], filename, _ShouldAllowWinStyleFlags(expected[:1] + to_remove + expected[-1:])))
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'), 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' ), contains( *expected ) )
def RemoveUnusedFlags_Passthrough_test(): eq_( [ '-foo', '-bar' ], flags._RemoveUnusedFlags( [ '-foo', '-bar' ], 'file' ) )
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'))
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_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'])))