diff options
Diffstat (limited to 'third_party/python/gyp/test/msvs/filters')
3 files changed, 172 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/msvs/filters/filters.gyp b/third_party/python/gyp/test/msvs/filters/filters.gyp new file mode 100644 index 0000000000..a4106dc8eb --- /dev/null +++ b/third_party/python/gyp/test/msvs/filters/filters.gyp @@ -0,0 +1,47 @@ +# Copyright (c) 2014 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'no_source_files', + 'type': 'none', + 'sources': [ ], + }, + { + 'target_name': 'one_source_file', + 'type': 'executable', + 'sources': [ + '../folder/a.c', + ], + }, + { + 'target_name': 'two_source_files', + 'type': 'executable', + 'sources': [ + '../folder/a.c', + '../folder/b.c', + ], + }, + { + 'target_name': 'three_files_in_two_folders', + 'type': 'executable', + 'sources': [ + '../folder1/a.c', + '../folder1/b.c', + '../folder2/c.c', + ], + }, + { + 'target_name': 'nested_folders', + 'type': 'executable', + 'sources': [ + '../folder1/nested/a.c', + '../folder2/d.c', + '../folder1/nested/b.c', + '../folder1/other/c.c', + ], + }, + ], +} diff --git a/third_party/python/gyp/test/msvs/filters/gyptest-filters-2008.py b/third_party/python/gyp/test/msvs/filters/gyptest-filters-2008.py new file mode 100644 index 0000000000..41ca085823 --- /dev/null +++ b/third_party/python/gyp/test/msvs/filters/gyptest-filters-2008.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python + +# Copyright (c) 2014 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Verifies that extra filters are pruned correctly for Visual Studio 2008. +""" + +import re +import TestGyp + + +def strip_ws(str): + return re.sub('^ +', '', str, flags=re.M).replace('\n', '') + + +test = TestGyp.TestGyp(formats=['msvs']) + +test.run_gyp('filters.gyp', '-G', 'standalone', '-G', 'msvs_version=2008') + +test.must_contain('no_source_files.vcproj', '<Files/>') + +test.must_contain('one_source_file.vcproj', strip_ws('''\ +<Files> + <File RelativePath="..\\folder\\a.c"/> +</Files> +''')) + +test.must_contain('two_source_files.vcproj', strip_ws('''\ +<Files> + <File RelativePath="..\\folder\\a.c"/> + <File RelativePath="..\\folder\\b.c"/> +</Files> +''')) + +test.must_contain('three_files_in_two_folders.vcproj', strip_ws('''\ +<Files> + <Filter Name="folder1"> + <File RelativePath="..\\folder1\\a.c"/> + <File RelativePath="..\\folder1\\b.c"/> + </Filter> + <Filter Name="folder2"> + <File RelativePath="..\\folder2\\c.c"/> + </Filter> +</Files> +''')) + +test.must_contain('nested_folders.vcproj', strip_ws('''\ +<Files> + <Filter Name="folder1"> + <Filter Name="nested"> + <File RelativePath="..\\folder1\\nested\\a.c"/> + <File RelativePath="..\\folder1\\nested\\b.c"/> + </Filter> + <Filter Name="other"> + <File RelativePath="..\\folder1\\other\\c.c"/> + </Filter> + </Filter> + <Filter Name="folder2"> + <File RelativePath="..\\folder2\\d.c"/> + </Filter> +</Files> +''')) + + +test.pass_test() diff --git a/third_party/python/gyp/test/msvs/filters/gyptest-filters-2010.py b/third_party/python/gyp/test/msvs/filters/gyptest-filters-2010.py new file mode 100644 index 0000000000..d8131d5d7b --- /dev/null +++ b/third_party/python/gyp/test/msvs/filters/gyptest-filters-2010.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# Copyright (c) 2014 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Verifies that extra filters are pruned correctly for Visual Studio 2010 +and later. +""" + +import TestGyp + + +test = TestGyp.TestGyp(formats=['msvs']) + +test.run_gyp('filters.gyp', '-G', 'standalone', '-G', 'msvs_version=2010') + +test.must_not_exist('no_source_files.vcxproj.filters') + +test.must_not_exist('one_source_file.vcxproj.filters') + +test.must_not_exist('two_source_files.vcxproj.filters') + +test.must_contain('three_files_in_two_folders.vcxproj.filters', '''\ + <ItemGroup> + <ClCompile Include="..\\folder1\\a.c"> + <Filter>folder1</Filter> + </ClCompile> + <ClCompile Include="..\\folder1\\b.c"> + <Filter>folder1</Filter> + </ClCompile> + <ClCompile Include="..\\folder2\\c.c"> + <Filter>folder2</Filter> + </ClCompile> + </ItemGroup> +'''.replace('\n', '\r\n')) + +test.must_contain('nested_folders.vcxproj.filters', '''\ + <ItemGroup> + <ClCompile Include="..\\folder1\\nested\\a.c"> + <Filter>folder1\\nested</Filter> + </ClCompile> + <ClCompile Include="..\\folder2\\d.c"> + <Filter>folder2</Filter> + </ClCompile> + <ClCompile Include="..\\folder1\\nested\\b.c"> + <Filter>folder1\\nested</Filter> + </ClCompile> + <ClCompile Include="..\\folder1\\other\\c.c"> + <Filter>folder1\\other</Filter> + </ClCompile> + </ItemGroup> +'''.replace('\n', '\r\n')) + + +test.pass_test() |