llvm-project/llvm/unittests/Support
Vinicius Tinti 577adda54f [Support/Path] Add path::is_absolute_gnu
Implements IS_ABSOLUTE_PATH from GNU tools.

C++17 is_absolute behavior is different the from the behavior defined by GNU
tools.

According to cppreference.com, C++17 states: "An absolute path is a path
that unambiguously identifies the location of a file without reference
to an additional starting location."

In other words, the rules are:
 1. POSIX style paths with nonempty root directory are absolute.
 2. Windows style paths with nonempty root name and root directory are
    absolute.
 3. No other paths are absolute.

GNU rules are:
 1. Paths starting with a path separator are absolute.
 2. Windows style paths are also absolute if they start with a character
    followed by ':'.
 3. No other paths are absolute.

On Windows style the path "C:\Users\Default" has "C:" as root name and "\"
as root directory.

Hence "C:" on Windows is absolute under GNU rules and not absolute under
C++17 because it has no root directory. Likewise "/" and "\" on Windows are
absolute under GNU and are not absolute under C++17 due to empty root name.

Related to PR46368.

Differential Revision: https://reviews.llvm.org/D87667
2020-09-23 18:01:32 +01:00
..
DynamicLibrary Fix Windows x86 compilation after a6a37a2fcd 2020-08-28 10:53:20 -04:00
ARMAttributeParser.cpp [RISCV] ELF attribute section for RISC-V. 2020-03-31 16:16:19 +08:00
AlignOfTest.cpp
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 Add raw_fd_stream_test.cpp into CMakeLists.txt 2020-09-12 07:48:12 +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 [llvm] [unittests] Remove temporary files after they're not needed 2020-09-02 00:34:44 +03:00
CompressionTest.cpp [CMake] Simplify CMake handling for zlib 2020-08-11 20:22:11 -07:00
ConvertUTFTest.cpp
CrashRecoveryTest.cpp [Support] Allow printing the stack trace only for a given depth 2020-08-26 09:27:42 -04:00
DJBTest.cpp
DataExtractorTest.cpp [Support] Make DataExtractor error messages more clear 2020-06-02 12:57:51 +02: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
FileCollectorTest.cpp [llvm] [unittests] Fix failing test 'FileCollectorTest.addDirectory' 2020-09-02 00:54:37 +03: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 [SystemZ/ZOS] Implement computeHostNumPhysicalCores 2020-08-12 08:31:33 -04:00
IndexedAccessorTest.cpp [llvm][STLExtras] Move various iterator/range utilities from MLIR to LLVM 2020-04-14 15:14:40 -07:00
ItaniumManglingCanonicalizerTest.cpp llvm-cxxmap: fix support for remapping non-mangled names. 2019-12-18 10:47:02 -08:00
JSONTest.cpp Revert "Disable a JSONTest.Integers test with all MSVCs, PR46470" 2020-06-26 22:30:24 -04:00
KnownBitsTest.cpp [KnownBits] Implement accurate unsigned and signed max and min 2020-09-07 09:09:01 +01:00
KnownBitsTest.h [DemandedBits] Improve accuracy of Add propagator 2020-08-17 12:54:09 +01:00
LEB128Test.cpp [llvm/Support] Don't crash on empty nullptr ranges when decoding LEBs 2020-04-06 14:14:11 +02:00
LineIteratorTest.cpp
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
MemoryBufferTest.cpp [LLVM][SupportTests] Ask the OS how large the page size is instead of guessing. 2020-04-15 15:12:28 -07:00
MemoryTest.cpp
NativeFormatTests.cpp
OptimizedStructLayoutTest.cpp Rename OptimalLayout to OptimizedStructLayout at Chris's request. 2020-04-10 00:14:20 -04:00
ParallelTest.cpp [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
Path.cpp [Support/Path] Add path::is_absolute_gnu 2020-09-23 18:01:32 +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 [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-07 00:51:41 +01:00
ScaledNumberTest.cpp
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::ArchKind's underlying type is uint64_t 2020-09-17 12:13:57 -07: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 Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy." 2020-09-10 11:53:09 -07: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
UnicodeTest.cpp
VersionTupleTest.cpp
VirtualFileSystemTest.cpp [llvm] [unittests] Remove temporary files after they're not needed 2020-09-02 00:34:44 +03:00
WithColorTest.cpp [Support] Replace 'DisableColors' boolean with 'ColorMode' enum 2020-06-08 09:48:47 -07:00
YAMLIOTest.cpp [yaml][clang-tidy] Fix multiline YAML serialization 2020-07-09 02:41:58 -07:00
YAMLParserTest.cpp
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 [Support][unittest] Fix asan failure after D81156 2020-06-09 17:48:00 -07:00
raw_pwrite_stream_test.cpp
raw_sha1_ostream_test.cpp
xxhashTest.cpp