Zachary Turner | e9f1df8 | 2018-09-05 23:30:17 +0000 | [diff] [blame] | 1 | |
| 2 | #include "llvm/Testing/Support/SupportHelpers.h" |
| 3 | |
| 4 | #include "llvm/ADT/SmallString.h" |
| 5 | #include "llvm/ADT/Twine.h" |
| 6 | #include "llvm/Support/Error.h" |
| 7 | #include "llvm/Support/FileSystem.h" |
| 8 | #include "llvm/Support/MemoryBuffer.h" |
| 9 | #include "llvm/Support/Path.h" |
| 10 | |
| 11 | #include "gtest/gtest.h" |
| 12 | |
| 13 | using namespace llvm; |
| 14 | using namespace llvm::unittest; |
| 15 | |
Fangrui Song | 95dd7a2 | 2018-09-06 19:51:20 +0000 | [diff] [blame] | 16 | SmallString<128> llvm::unittest::getInputFileDirectory(const char *Argv0) { |
| 17 | llvm::SmallString<128> Result = llvm::sys::path::parent_path(Argv0); |
Zachary Turner | e9f1df8 | 2018-09-05 23:30:17 +0000 | [diff] [blame] | 18 | llvm::sys::fs::make_absolute(Result); |
| 19 | llvm::sys::path::append(Result, "llvm.srcdir.txt"); |
| 20 | |
Zachary Turner | 9ec2304 | 2018-09-05 23:45:48 +0000 | [diff] [blame] | 21 | EXPECT_TRUE(llvm::sys::fs::is_regular_file(Result)) |
Zachary Turner | e9f1df8 | 2018-09-05 23:30:17 +0000 | [diff] [blame] | 22 | << "Unit test source directory file does not exist."; |
| 23 | |
| 24 | auto File = MemoryBuffer::getFile(Result); |
| 25 | |
| 26 | EXPECT_TRUE(static_cast<bool>(File)) |
| 27 | << "Could not open unit test source directory file."; |
| 28 | |
| 29 | Result.clear(); |
| 30 | Result.append((*File)->getBuffer().trim()); |
| 31 | llvm::sys::path::append(Result, "Inputs"); |
| 32 | llvm::sys::path::native(Result); |
Zachary Turner | 5cda1b8 | 2018-09-06 00:06:20 +0000 | [diff] [blame] | 33 | return Result; |
Zachary Turner | e9f1df8 | 2018-09-05 23:30:17 +0000 | [diff] [blame] | 34 | } |