1*a7d186c7SJonas Devlieghere //===-- FileTest.cpp --------------------------------------------*- C++ -*-===// 2*a7d186c7SJonas Devlieghere // 3*a7d186c7SJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*a7d186c7SJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information. 5*a7d186c7SJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*a7d186c7SJonas Devlieghere // 7*a7d186c7SJonas Devlieghere //===----------------------------------------------------------------------===// 8*a7d186c7SJonas Devlieghere 9*a7d186c7SJonas Devlieghere #include "lldb/Host/File.h" 10*a7d186c7SJonas Devlieghere #include "llvm/ADT/SmallString.h" 11*a7d186c7SJonas Devlieghere #include "llvm/Support/FileSystem.h" 12*a7d186c7SJonas Devlieghere #include "llvm/Support/FileUtilities.h" 13*a7d186c7SJonas Devlieghere #include "llvm/Support/Path.h" 14*a7d186c7SJonas Devlieghere #include "llvm/Support/Program.h" 15*a7d186c7SJonas Devlieghere #include "gtest/gtest.h" 16*a7d186c7SJonas Devlieghere 17*a7d186c7SJonas Devlieghere using namespace lldb; 18*a7d186c7SJonas Devlieghere using namespace lldb_private; 19*a7d186c7SJonas Devlieghere 20*a7d186c7SJonas Devlieghere TEST(File, GetWaitableHandleFileno) { 21*a7d186c7SJonas Devlieghere const auto *Info = testing::UnitTest::GetInstance()->current_test_info(); 22*a7d186c7SJonas Devlieghere 23*a7d186c7SJonas Devlieghere llvm::SmallString<128> name; 24*a7d186c7SJonas Devlieghere int fd; 25*a7d186c7SJonas Devlieghere llvm::sys::fs::createTemporaryFile(llvm::Twine(Info->test_case_name()) + "-" + 26*a7d186c7SJonas Devlieghere Info->name(), 27*a7d186c7SJonas Devlieghere "test", fd, name); 28*a7d186c7SJonas Devlieghere llvm::FileRemover remover(name); 29*a7d186c7SJonas Devlieghere ASSERT_GE(fd, 0); 30*a7d186c7SJonas Devlieghere 31*a7d186c7SJonas Devlieghere FILE *stream = fdopen(fd, "r"); 32*a7d186c7SJonas Devlieghere ASSERT_TRUE(stream); 33*a7d186c7SJonas Devlieghere 34*a7d186c7SJonas Devlieghere File file(stream, true); 35*a7d186c7SJonas Devlieghere EXPECT_EQ(file.GetWaitableHandle(), fd); 36*a7d186c7SJonas Devlieghere } 37