diff options
| author | James Benton <bentonj@vmware.com> | 2020-10-27 16:32:10 +0000 |
|---|---|---|
| committer | James Benton <bentonj@vmware.com> | 2020-11-23 10:42:37 +0000 |
| commit | cb5fd47fc19798eb7ff6d2358b24cf734a1fb2fc (patch) | |
| tree | 342e3b5c63bc43a5bbb8f8469991a9dffa42ea37 /test/CompilationDatabase | |
| parent | 948e8afafe3a0b4c3774aca6a935b20972a9e762 (diff) | |
| download | scons-git-cb5fd47fc19798eb7ff6d2358b24cf734a1fb2fc.tar.gz | |
Add COMPILATIONDB_USE_PATH_FILTER for filtering compilation database.
The filter is a fnmatch pattern matched against output file.
Diffstat (limited to 'test/CompilationDatabase')
| -rw-r--r-- | test/CompilationDatabase/fixture/SConstruct_variant | 4 | ||||
| -rw-r--r-- | test/CompilationDatabase/variant_dir.py | 49 |
2 files changed, 53 insertions, 0 deletions
diff --git a/test/CompilationDatabase/fixture/SConstruct_variant b/test/CompilationDatabase/fixture/SConstruct_variant index f47c732ef..d86f5933f 100644 --- a/test/CompilationDatabase/fixture/SConstruct_variant +++ b/test/CompilationDatabase/fixture/SConstruct_variant @@ -32,6 +32,10 @@ env.CompilationDatabase('compile_commands_over_rel.json', COMPILATIONDB_USE_ABSP env.CompilationDatabase('compile_commands_over_abs_1.json', COMPILATIONDB_USE_ABSPATH=1) env.CompilationDatabase('compile_commands_over_abs_0.json', COMPILATIONDB_USE_ABSPATH=0) +# Try filter for build and build2 output +env.CompilationDatabase('compile_commands_filter_build.json', COMPILATIONDB_USE_PATH_FILTER='build/*') +env.CompilationDatabase('compile_commands_filter_build2.json', COMPILATIONDB_USE_PATH_FILTER='build2/*') + env.VariantDir('build','src') env.Program('build/main', 'build/test_main.c') diff --git a/test/CompilationDatabase/variant_dir.py b/test/CompilationDatabase/variant_dir.py index a36e5164c..6a2675b40 100644 --- a/test/CompilationDatabase/variant_dir.py +++ b/test/CompilationDatabase/variant_dir.py @@ -56,6 +56,14 @@ abs_files = [ 'compile_commands_over_abs_1.json', ] +filter_build_files = [ + 'compile_commands_filter_build.json', +] + +filter_build2_files = [ + 'compile_commands_filter_build2.json', +] + example_rel_file = """[ { "command": "%(exe)s mygcc.py cc -o %(output_file)s -c %(variant_src_file)s", @@ -115,4 +123,45 @@ for f in abs_files: test.must_exist(f) test.must_match(f, example_abs_file, mode='r') +example_filter_build_file = """[ + { + "command": "%(exe)s mygcc.py cc -o %(output_file)s -c %(variant_src_file)s", + "directory": "%(workdir)s", + "file": "%(src_file)s", + "output": "%(output_file)s" + } +]""" % {'exe': sys.executable, + 'workdir': test.workdir, + 'src_file': os.path.join('src', 'test_main.c'), + 'output_file': os.path.join('build', 'test_main.o'), + 'variant_src_file': os.path.join('build', 'test_main.c') + } + +if sys.platform == 'win32': + example_filter_build_file = example_filter_build_file.replace('\\', '\\\\') + +for f in filter_build_files: + test.must_exist(f) + test.must_match(f, example_filter_build_file, mode='r') + +example_filter_build2_file = """[ + { + "command": "%(exe)s mygcc.py cc -o %(output2_file)s -c %(src_file)s", + "directory": "%(workdir)s", + "file": "%(src_file)s", + "output": "%(output2_file)s" + } +]""" % {'exe': sys.executable, + 'workdir': test.workdir, + 'src_file': os.path.join('src', 'test_main.c'), + 'output2_file': os.path.join('build2', 'test_main.o'), + } + +if sys.platform == 'win32': + example_filter_build2_file = example_filter_build2_file.replace('\\', '\\\\') + +for f in filter_build2_files: + test.must_exist(f) + test.must_match(f, example_filter_build2_file, mode='r') + test.pass_test() |
