JDevlieghere created this revision.
JDevlieghere added reviewers: LLDB, labath.
Herald added a subscriber: teemperor.
Herald added a project: LLDB.

Explicitly disallow using `lldb` instead of `%lldb` in the shell tests. This is 
a clever trick that is used by Swift to achieve the same results.


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D73289

Files:
  lldb/test/Shell/helper/toolchain.py


Index: lldb/test/Shell/helper/toolchain.py
===================================================================
--- lldb/test/Shell/helper/toolchain.py
+++ lldb/test/Shell/helper/toolchain.py
@@ -14,6 +14,15 @@
     return os.path.join(config.test_exec_root, 'Shell', 'lit-lldb-init')
 
 
+def _disallow(config, execName):
+  warning = '''
+    echo '*** Do not use \'{0}\' in tests; use \'%''{0}\'. ***' &&
+    exit 1 && echo
+  '''
+  config.substitutions.append((' {0} '.format(execName),
+                               warning.format(execName)))
+
+
 def use_lldb_substitutions(config):
     # Set up substitutions for primary tools.  These tools must come from 
config.lldb_tools_dir
     # which is basically the build output directory.  We do not want to find 
these in path or
@@ -58,6 +67,10 @@
                   extra_args=build_script_args)
         ]
 
+    _disallow(config, 'lldb')
+    _disallow(config, 'debugserver')
+    _disallow(config, 'platformserver')
+
     llvm_config.add_tool_substitutions(primary_tools,
                                        [config.lldb_tools_dir])
 
@@ -141,6 +154,7 @@
     additional_tool_dirs += [config.lldb_tools_dir, config.llvm_tools_dir]
     llvm_config.add_tool_substitutions(support_tools, additional_tool_dirs)
 
+    _disallow(config, 'clang')
 
 def use_lldb_repro_substitutions(config, mode):
     lldb_init = _get_lldb_init_path(config)


Index: lldb/test/Shell/helper/toolchain.py
===================================================================
--- lldb/test/Shell/helper/toolchain.py
+++ lldb/test/Shell/helper/toolchain.py
@@ -14,6 +14,15 @@
     return os.path.join(config.test_exec_root, 'Shell', 'lit-lldb-init')
 
 
+def _disallow(config, execName):
+  warning = '''
+    echo '*** Do not use \'{0}\' in tests; use \'%''{0}\'. ***' &&
+    exit 1 && echo
+  '''
+  config.substitutions.append((' {0} '.format(execName),
+                               warning.format(execName)))
+
+
 def use_lldb_substitutions(config):
     # Set up substitutions for primary tools.  These tools must come from config.lldb_tools_dir
     # which is basically the build output directory.  We do not want to find these in path or
@@ -58,6 +67,10 @@
                   extra_args=build_script_args)
         ]
 
+    _disallow(config, 'lldb')
+    _disallow(config, 'debugserver')
+    _disallow(config, 'platformserver')
+
     llvm_config.add_tool_substitutions(primary_tools,
                                        [config.lldb_tools_dir])
 
@@ -141,6 +154,7 @@
     additional_tool_dirs += [config.lldb_tools_dir, config.llvm_tools_dir]
     llvm_config.add_tool_substitutions(support_tools, additional_tool_dirs)
 
+    _disallow(config, 'clang')
 
 def use_lldb_repro_substitutions(config, mode):
     lldb_init = _get_lldb_init_path(config)
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to