[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