llvm-project/llvm/unittests/Support
Markus Böck c6047101ad [Support][Windows] Make sure only executables are found by sys::findProgramByName
The function utilizes Windows' SearchPathW function, which as I found out today, may also return directories. After looking at the Unix implementation of the file I found that it contains a check whether the found path is also executable. While fixing the Windows implementation, I also learned that sys::fs::access returns successfully when querying whether directories are executable, which the Unix version does not.

This patch makes both of these functions equivalent to their Unix implementation and insures that any path returned by sys::findProgramByName on Windows may only be executable, just like the Unix implementation.

The equivalent additions I have made to the Windows implementation, in the Unix implementation are here:
sys::findProgramByName: 39ecfe6143/llvm/lib/Support/Unix/Program.inc (L90)
sys::fs::access: c2a84771bb/llvm/lib/Support/Unix/Path.inc (L608)

I encountered this issue when running the LLVM testsuite. Commands of the form not test ... would fail to correctly execute test.exe, which is part of GnuWin32, as it actually tried to execute a folder called test, which happened to be in a directory on my PATH.

Differential Revision: https://reviews.llvm.org/D99357
2021-03-25 20:29:43 +01:00
..
DynamicLibrary [CMake][AIX] Adjust plugin library extension used on AIX 2021-03-04 11:23:06 -05:00
ARMAttributeParser.cpp [ARMAttributeParser] Correctly parse and print Tag_THUMB_ISA_use=3 2020-11-28 12:28:22 -08:00
AlignOfTest.cpp Revert "ADT: Migrate users of AlignedCharArrayUnion to std::aligned_union_t, NFC" 2020-12-14 17:04:06 -08:00
AlignmentTest.cpp [Align] Remove operations on MaybeAlign that asserted that it had a defined value. 2020-05-22 21:54:28 -07:00
AllocatorTest.cpp [Allocator] Make Deallocate() pass alignment and make it use (de)allocate_buffer 2020-05-02 16:08:46 +02:00
AnnotationsTest.cpp
ArrayRecyclerTest.cpp
Base64Test.cpp Syndicate, test and fix base64 implementation 2020-03-03 12:17:53 +01:00
BinaryStreamTest.cpp [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
BlockFrequencyTest.cpp
BranchProbabilityTest.cpp
CMakeLists.txt [llvm/Support] Add SHA256 implementation 2021-02-14 19:01:01 +00:00
CRCTest.cpp Make llvm::crc32() work also for input sizes larger than 32 bits. 2020-02-05 21:32:11 +01:00
CachePruningTest.cpp
Casting.cpp
CheckedArithmeticTest.cpp
Chrono.cpp
CommandLineTest.cpp [Support] Indent multi-line descr of enum cli options. 2021-02-04 10:14:44 +01:00
CompressionTest.cpp [CMake] Simplify CMake handling for zlib 2020-08-11 20:22:11 -07:00
ConvertUTFTest.cpp Reland "[Support][unittests] Enforce alignment in ConvertUTFTest" 2020-10-14 12:02:27 +02:00
CrashRecoveryTest.cpp [RGT] Don't use EXPECT* macros in a subprocess that exits by signalling 2021-01-22 15:04:34 -08:00
DJBTest.cpp
DataExtractorTest.cpp Fixup Asserts+!AbiBreakingChecks fallout from db33f85c71 2021-01-07 14:18:19 -08:00
DebugCounterTest.cpp
DebugTest.cpp
ELFAttributeParserTest.cpp [llvm][NFC] Add missing 'override's in unittests/ 2020-07-17 17:35:59 -07:00
EndianStreamTest.cpp
EndianTest.cpp
ErrnoTest.cpp
ErrorOrTest.cpp
ErrorTest.cpp [Error/unittests] Add a FailedWithMessage gtest matcher 2020-02-21 15:29:48 +01:00
ExtensibleRTTITest.cpp [Support] Add support RTTI support for open class hierarchies. 2020-04-13 12:52:44 -07:00
FSUniqueIDTest.cpp Support: Avoid std::tie in Support/FileSystem/UniqueID.h, NFC 2020-11-02 13:26:15 -05:00
FileCollectorTest.cpp Support: Remove duplicated code in {File,clang::ModulesDependency}Collector, NFC 2021-01-25 15:09:00 -08:00
FileOutputBufferTest.cpp [Support] Allow FileOutputBuffer::create to create an empty file 2020-05-05 08:11:58 -07:00
FileUtilitiesTest.cpp [llvm] [unittests] Remove temporary files after they're not needed 2020-09-02 00:34:44 +03:00
FormatVariadicTest.cpp [LLVM] Update formatv() documentation to clarify no escape for `}` 2020-07-22 15:30:40 -07:00
GlobPatternTest.cpp [Support] Add GlobPattern::isTrivialMatchAll() 2020-09-16 10:26:11 +01:00
Host.cpp [AIX][llvm][support] Implement getHostCPUName 2021-02-09 16:30:18 -05:00
IndexedAccessorTest.cpp [llvm][STLExtras] Move various iterator/range utilities from MLIR to LLVM 2020-04-14 15:14:40 -07:00
InstructionCostTest.cpp Reland "Ensure that InstructionCost actually implements a total ordering" 2021-02-04 10:04:10 -08:00
ItaniumManglingCanonicalizerTest.cpp
JSONTest.cpp [JSON] Add ObjectMapper::mapOptional to validate optional data. 2020-10-12 12:48:08 +02:00
KnownBitsTest.cpp [KnownBits] Add knownbits analysis for mulhs/mulu 'multiply high' instructions 2021-03-19 08:56:06 +00:00
KnownBitsTest.h [DemandedBits] Improve accuracy of Add propagator 2020-08-17 12:54:09 +01:00
LEB128Test.cpp Diagnose if a SLEB128 is too large to fit in an int64_t. 2021-02-02 14:33:34 -08:00
LineIteratorTest.cpp Support: Allow use of MemoryBufferRef with line_iterator 2020-10-13 16:43:49 -04:00
LinearPolyBaseTest.cpp [TypeSize] Extend UnivariateLinearPolyBase with getWithIncrement/Decrement methods 2020-11-06 09:01:19 +00:00
LockFileManagerTest.cpp [llvm] [unittest] Allow getting a C string from the TempDir helper class 2020-09-09 01:53:15 +03:00
MD5Test.cpp
ManagedStatic.cpp
MatchersTest.cpp
MathExtrasTest.cpp [Support] Remove byte swapping from MathExtras.h 2020-02-27 17:23:48 -08:00
MemoryBufferRefTest.cpp Support: Add operator== for MemoryBufferRef and split out MemoryBufferRef.h 2020-10-13 16:42:24 -04:00
MemoryBufferTest.cpp Support: Add operator== for MemoryBufferRef and split out MemoryBufferRef.h 2020-10-13 16:42:24 -04:00
MemoryTest.cpp [mac/arm] skip MappedMemoryTest that try to map w+x 2020-12-12 19:46:32 -05:00
NativeFormatTests.cpp
OptimizedStructLayoutTest.cpp Rename OptimalLayout to OptimizedStructLayout at Chris's request. 2020-04-10 00:14:20 -04:00
ParallelTest.cpp Add parallelTransformReduce and parallelForEachError 2020-11-02 16:50:14 -08:00
Path.cpp [Support][Windows] Make sure only executables are found by sys::findProgramByName 2021-03-25 20:29:43 +01:00
ProcessTest.cpp [Support] Silence warning: comparison of integers of different signs: 'const int' and 'const unsigned long' 2020-05-06 09:12:00 -04:00
ProgramTest.cpp [Support] Add file lock/unlock functions 2020-07-28 16:44:23 +07:00
RISCVAttributeParserTest.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
RegexTest.cpp
ReplaceFileTest.cpp
ReverseIterationTest.cpp
SHA256.cpp [llvm/Support] Add SHA256 implementation 2021-02-14 19:01:01 +00:00
ScaledNumberTest.cpp Switch from llvm::is_trivially_copyable to std::is_trivially_copyable 2020-12-02 22:02:48 -08:00
SourceMgrTest.cpp
SpecialCaseListTest.cpp [clang/llvm] As part of using inclusive language within 2020-06-20 16:03:58 -07:00
SuffixTreeTest.cpp [SuffixTree][MachOpt] Factoring out Suffix Tree and adding Unit Tests 2020-06-08 12:44:18 -07:00
SwapByteOrderTest.cpp [Support] Remove byte swapping from MathExtras.h 2020-02-27 17:23:48 -08:00
SymbolRemappingReaderTest.cpp
TarWriterTest.cpp [llvm] [unittests] Remove temporary files after they're not needed 2020-09-02 00:34:44 +03:00
TargetParserTest.cpp AArch64: report fp16 arithmetic is present for apple-a11 CPU. 2021-03-02 15:07:18 +00:00
TaskQueueTest.cpp [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
ThreadLocalTest.cpp
ThreadPool.cpp [Support][test] Unconditionally use setenv macro when compiling on Windows 2021-03-09 19:53:22 +01:00
Threading.cpp [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
TimerTest.cpp
ToolOutputFileTest.cpp [Support] Use outs() in ToolOutputFile 2020-06-04 14:56:35 +02:00
TrailingObjectsTest.cpp
TrigramIndexTest.cpp
TypeNameTest.cpp
TypeTraitsTest.cpp Make sure some types are indeed trivially_copyable per llvm::is_trivially_copyable 2021-02-24 18:24:57 +01:00
UnicodeTest.cpp Speedup some unicode rendering 2020-12-03 20:11:11 +01:00
VersionTupleTest.cpp
VirtualFileSystemTest.cpp [VFS] Add support to RedirectingFileSystem for mapping a virtual directory to one in the external FS. 2021-02-02 14:56:17 +10:00
WithColorTest.cpp [Support] Replace 'DisableColors' boolean with 'ColorMode' enum 2020-06-08 09:48:47 -07:00
YAMLIOTest.cpp [YAML I/O] Fix bug in emission of empty sequence 2021-01-25 13:35:36 -08:00
YAMLParserTest.cpp [YAML] Support extended spellings when parsing bools. 2020-12-12 12:50:34 +00:00
formatted_raw_ostream_test.cpp [Support] Fix formatted_raw_ostream for UTF-8 2020-07-06 16:18:15 +01:00
raw_fd_stream_test.cpp Add raw_fd_stream that supports reading/seeking/writing 2020-09-12 07:34:19 +00:00
raw_ostream_test.cpp [llvm-objcopy][Support] move writeToOutput helper function to Support. 2021-03-22 15:41:10 +03:00
raw_pwrite_stream_test.cpp
raw_sha1_ostream_test.cpp
xxhashTest.cpp