When LLVM_ENABLE_THREADS is not defined, llvm::get_threadid returns 0 which makes this test case fail. This is a pretty niche setting, Linaro uses it to stop lld crashing our 32 bit containers. So the test will get plenty of runs elsewhere. In lldb's code it's not getting the current thread ID anyway, it's using a value it got from ptrace. So even if that copy of lldb was built with LLVM_ENABLE_THREADS off, it should still be able to debug threads.
28 lines
892 B
C++
28 lines
892 B
C++
//===-- SupportTest.cpp ---------------------------------------------------===//
|
|
//
|
|
// 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/linux/Support.h"
|
|
#include "llvm/Support/Threading.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace lldb_private;
|
|
|
|
TEST(Support, getProcFile_Pid) {
|
|
auto BufferOrError = getProcFile(getpid(), "maps");
|
|
ASSERT_TRUE(BufferOrError);
|
|
ASSERT_TRUE(*BufferOrError);
|
|
}
|
|
|
|
#ifdef LLVM_ENABLE_THREADING
|
|
TEST(Support, getProcFile_Tid) {
|
|
auto BufferOrError = getProcFile(getpid(), llvm::get_threadid(), "comm");
|
|
ASSERT_TRUE(BufferOrError);
|
|
ASSERT_TRUE(*BufferOrError);
|
|
}
|
|
#endif /*ifdef LLVM_ENABLE_THREADING */
|