diff options
author | William Deegan <bill@baddogconsulting.com> | 2022-12-31 15:42:13 -0800 |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2022-12-31 15:42:13 -0800 |
commit | 6bf97c4c32b86cb7509d0d92bd63b671d5681cbc (patch) | |
tree | 1b13b5bd8808892c21a877e76e6e67be41a06e94 /test | |
parent | 82a4c4c419ec36c090beda64665c775953444724 (diff) | |
download | scons-git-6bf97c4c32b86cb7509d0d92bd63b671d5681cbc.tar.gz |
Simplify test for commpilation db + TEMPFILE interaction
Diffstat (limited to 'test')
-rw-r--r-- | test/CompilationDatabase/TEMPFILE.py (renamed from test/CompilationDatabase/tmpfile.py) | 46 | ||||
-rw-r--r-- | test/CompilationDatabase/fixture/SConstruct_tempfile | 27 |
2 files changed, 13 insertions, 60 deletions
diff --git a/test/CompilationDatabase/tmpfile.py b/test/CompilationDatabase/TEMPFILE.py index ea28a07f0..45e4521c4 100644 --- a/test/CompilationDatabase/tmpfile.py +++ b/test/CompilationDatabase/TEMPFILE.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # -# __COPYRIGHT__ +# MIT License +# +# Copyright The SCons Foundation # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the @@ -20,10 +22,10 @@ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# + """ -Test CompilationDatabase and several variations of ways to call it -and values of COMPILATIONDB_USE_ABSPATH +Test that CompilationDatabase works when TEMPFILE is being used to handle long +commandlines for compilers/linkers/etc """ import sys @@ -33,27 +35,14 @@ import TestSCons test = TestSCons.TestSCons() -test.file_fixture('mylink.py') test.file_fixture('mygcc.py') - -test.verbose_set(1) -test.file_fixture('fixture/SConstruct_tempfile', 'SConstruct') test.file_fixture('test_main.c') +test.file_fixture('fixture/SConstruct_tempfile', 'SConstruct') + test.run() rel_files = [ 'compile_commands_only_arg.json', - 'compile_commands_target.json', - 'compile_commands.json', - 'compile_commands_over_rel.json', - 'compile_commands_over_abs_0.json' -] - -abs_files = [ - 'compile_commands_clone_abs.json', - 'compile_commands_over_abs.json', - 'compile_commands_target_over_abs.json', - 'compile_commands_over_abs_1.json', ] example_rel_file = """[ @@ -74,23 +63,4 @@ for f in rel_files: test.must_exist(f) test.must_match(f, example_rel_file, mode='r') -example_abs_file = """[ - { - "command": "%s mygcc.py cc -o test_main.o -c test_main.c", - "directory": "%s", - "file": "%s", - "output": "%s" - } -] -""" % (sys.executable, test.workdir, os.path.join(test.workdir, 'test_main.c'), os.path.join(test.workdir, 'test_main.o')) - -if sys.platform == 'win32': - example_abs_file = example_abs_file.replace('\\', '\\\\') - - -for f in abs_files: - test.must_exist(f) - test.must_match(f, example_abs_file, mode='r') - - test.pass_test() diff --git a/test/CompilationDatabase/fixture/SConstruct_tempfile b/test/CompilationDatabase/fixture/SConstruct_tempfile index d7c2efd90..2e942db0e 100644 --- a/test/CompilationDatabase/fixture/SConstruct_tempfile +++ b/test/CompilationDatabase/fixture/SConstruct_tempfile @@ -6,39 +6,22 @@ env = Environment( LINK='$PYTHON mylink.py', LINKFLAGS=[], CC='$PYTHON mygcc.py cc', - CXX='$PYTHON mygcc.py c++', - tools=['gcc','g++','gnulink'], + tools=['gcc'], MAXLINELENGTH=10, ) + # make sure TempFileMunge is used if 'TEMPFILE' not in env['CCCOM']: - env['CCCOM'] = '${TEMPFILE("%s")}'%(env['CCCOM']) + env['CCCOM'] = '${TEMPFILE("%s")}' % (env['CCCOM']) env.Tool('compilation_db') outputs = [] -env_abs = env.Clone(COMPILATIONDB_USE_ABSPATH=True) -outputs+= env_abs.CompilationDatabase('compile_commands_clone_abs.json') - -# Should be relative paths -outputs+= env.CompilationDatabase('compile_commands_only_arg.json') -outputs+= env.CompilationDatabase(target='compile_commands_target.json') - -# Should default name compile_commands.json -outputs+= env.CompilationDatabase() - -# Should be absolute paths -outputs+= env.CompilationDatabase('compile_commands_over_abs.json', COMPILATIONDB_USE_ABSPATH=True) -outputs+= env.CompilationDatabase(target='compile_commands_target_over_abs.json', COMPILATIONDB_USE_ABSPATH=True) # Should be relative paths -outputs+= env.CompilationDatabase('compile_commands_over_rel.json', COMPILATIONDB_USE_ABSPATH=False) - -# Try 1/0 for COMPILATIONDB_USE_ABSPATH -outputs+= env.CompilationDatabase('compile_commands_over_abs_1.json', COMPILATIONDB_USE_ABSPATH=1) -outputs+= env.CompilationDatabase('compile_commands_over_abs_0.json', COMPILATIONDB_USE_ABSPATH=0) +outputs += env.CompilationDatabase('compile_commands_only_arg.json') -env.Program('main', 'test_main.c') +env.Object('test_main.c') # Prevent actual call of $PYTHON @tempfile since "mygcc.py cc ..." is not a proper python statement # Interesting outputs are json databases |