summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2022-12-31 15:42:13 -0800
committerWilliam Deegan <bill@baddogconsulting.com>2022-12-31 15:42:13 -0800
commit6bf97c4c32b86cb7509d0d92bd63b671d5681cbc (patch)
tree1b13b5bd8808892c21a877e76e6e67be41a06e94 /test
parent82a4c4c419ec36c090beda64665c775953444724 (diff)
downloadscons-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_tempfile27
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