diff options
Diffstat (limited to 'gnu/llvm/lldb/unittests/Host/FileTest.cpp')
-rw-r--r-- | gnu/llvm/lldb/unittests/Host/FileTest.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/unittests/Host/FileTest.cpp b/gnu/llvm/lldb/unittests/Host/FileTest.cpp new file mode 100644 index 00000000000..6a0434327f3 --- /dev/null +++ b/gnu/llvm/lldb/unittests/Host/FileTest.cpp @@ -0,0 +1,57 @@ +//===-- FileTest.cpp --------------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "lldb/Host/File.h" +#include "llvm/ADT/SmallString.h" +#include "llvm/Support/FileSystem.h" +#include "llvm/Support/FileUtilities.h" +#include "llvm/Support/Path.h" +#include "llvm/Support/Program.h" +#include "gtest/gtest.h" + +using namespace lldb; +using namespace lldb_private; + +TEST(File, GetWaitableHandleFileno) { + const auto *Info = testing::UnitTest::GetInstance()->current_test_info(); + + llvm::SmallString<128> name; + int fd; + llvm::sys::fs::createTemporaryFile(llvm::Twine(Info->test_case_name()) + "-" + + Info->name(), + "test", fd, name); + llvm::FileRemover remover(name); + ASSERT_GE(fd, 0); + + FILE *stream = fdopen(fd, "r"); + ASSERT_TRUE(stream); + + NativeFile file(stream, true); + EXPECT_EQ(file.GetWaitableHandle(), fd); +} + +TEST(File, GetStreamFromDescriptor) { + const auto *Info = testing::UnitTest::GetInstance()->current_test_info(); + llvm::SmallString<128> name; + int fd; + llvm::sys::fs::createTemporaryFile(llvm::Twine(Info->test_case_name()) + "-" + + Info->name(), + "test", fd, name); + + llvm::FileRemover remover(name); + ASSERT_GE(fd, 0); + + NativeFile file(fd, File::eOpenOptionWrite, true); + ASSERT_TRUE(file.IsValid()); + + FILE *stream = file.GetStream(); + ASSERT_TRUE(stream != NULL); + + EXPECT_EQ(file.GetDescriptor(), fd); + EXPECT_EQ(file.GetWaitableHandle(), fd); +} |