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 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_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_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_RemoveColor_test(): expected = ['-foo', '-bar'] to_remove = ['--fcolor-diagnostics'] 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_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_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'])))