[PATCH] D66293: [lit] Check for accidental external command calls

Joel E. Denny via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 19 15:59:03 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL369309: [lit] Check for accidental external command calls (authored by jdenny, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D66293?vs=215395&id=216012#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66293/new/

https://reviews.llvm.org/D66293

Files:
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/cd
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/diff
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/env
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/export
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/fake_external.py
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/mkdir
  llvm/trunk/utils/lit/tests/Inputs/fake-externals/rm
  llvm/trunk/utils/lit/tests/lit.cfg


Index: llvm/trunk/utils/lit/tests/lit.cfg
===================================================================
--- llvm/trunk/utils/lit/tests/lit.cfg
+++ llvm/trunk/utils/lit/tests/lit.cfg
@@ -75,3 +75,14 @@
 if not llvm_config:
   if sys.platform.startswith('win') or sys.platform.startswith('cygwin'):
     config.available_features.add('system-windows')
+
+# For each of lit's internal shell commands ('env', 'cd', 'diff', etc.), put
+# a fake command that always fails at the start of PATH.  This helps us check
+# that we always use lit's internal version rather than some external version
+# that might not be present or behave correctly on all platforms.  Don't do
+# this for 'echo' because an external version is used when it appears in a
+# pipeline.  Don't do this for ':' because it doesn't appear to be a valid file
+# name under Windows.
+test_bin = os.path.join(os.path.dirname(__file__), 'Inputs', 'fake-externals')
+config.environment['PATH'] = os.path.pathsep.join((test_bin,
+                                                   config.environment['PATH']))
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/env
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/env
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/env
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+import fake_external
+
+fake_external.execute(__file__)
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/diff
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/diff
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/diff
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+import fake_external
+
+fake_external.execute(__file__)
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/mkdir
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/mkdir
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/mkdir
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+import fake_external
+
+fake_external.execute(__file__)
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/cd
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/cd
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/cd
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+import fake_external
+
+fake_external.execute(__file__)
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/export
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/export
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/export
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+import fake_external
+
+fake_external.execute(__file__)
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/fake_external.py
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/fake_external.py
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/fake_external.py
@@ -0,0 +1,7 @@
+import os
+import sys
+
+def execute(fileName):
+  sys.stderr.write("error: external '{}' command called unexpectedly\n"
+                   .format(os.path.basename(fileName)));
+  sys.exit(1)
Index: llvm/trunk/utils/lit/tests/Inputs/fake-externals/rm
===================================================================
--- llvm/trunk/utils/lit/tests/Inputs/fake-externals/rm
+++ llvm/trunk/utils/lit/tests/Inputs/fake-externals/rm
@@ -0,0 +1,5 @@
+#!/usr/bin/env python
+
+import fake_external
+
+fake_external.execute(__file__)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66293.216012.patch
Type: text/x-patch
Size: 3618 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190819/77245823/attachment.bin>


More information about the llvm-commits mailing list