From b6a633ca94dbdc9904733e6462b5e214a240a284 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 17 Jun 2013 14:00:41 +0000 Subject: [PATCH] Add a testcase for r184074. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184080 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Other/Inputs/TestProg/TestProg | 3 +++ test/Other/can-execute.txt | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100755 test/Other/Inputs/TestProg/TestProg create mode 100644 test/Other/can-execute.txt diff --git a/test/Other/Inputs/TestProg/TestProg b/test/Other/Inputs/TestProg/TestProg new file mode 100755 index 00000000000..1c4efba60d0 --- /dev/null +++ b/test/Other/Inputs/TestProg/TestProg @@ -0,0 +1,3 @@ +#!/bin/sh + +false diff --git a/test/Other/can-execute.txt b/test/Other/can-execute.txt new file mode 100644 index 00000000000..c7d08f6d8b1 --- /dev/null +++ b/test/Other/can-execute.txt @@ -0,0 +1,20 @@ +REQUIRES: shell + +This tests that we abstract two peculiarities of unix in can_execute: + +* Directories are executable, but we don't want to try to execute them. +* For shell scripts, we also need to be able to read them. + +The PATH is constructed such that 'not' will first find a directory named +TestProg, then a file with executable bit but not readable and finally a +shell script which always returns false, which is what it actually tries to +execute. + +If we want, it is probably OK to change the semantics of can_execute and this +test, but for now this test serves as a reminder to audit all the callers if +we do that. + +RUN: cp -f %S/Inputs/TestProg/TestProg %T/TestProg +RUN: chmod 111 %T/TestProg +RUN: export PATH=%S/Inputs:%T:%S/Inputs/TestProg:$PATH +RUN: not TestProg -- 2.34.1