forked from OSchip/llvm-project
Add format_provider for the Error class
Summary: The formatter supports the same options as the string-like classes, i.e. the ability to truncate the displayed string. I don't anticipate it would be much used, but it seems consistent. Reviewers: zturner, clayborg Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D28519 llvm-svn: 291759
This commit is contained in:
parent
0d8af3697a
commit
3284684dd1
|
@ -12,6 +12,7 @@
|
|||
#if defined(__cplusplus)
|
||||
|
||||
#include "llvm/Support/DataTypes.h"
|
||||
#include "llvm/Support/FormatVariadic.h"
|
||||
|
||||
#include <cstdarg>
|
||||
#include <cstdio>
|
||||
|
@ -300,5 +301,15 @@ protected:
|
|||
|
||||
} // namespace lldb_private
|
||||
|
||||
namespace llvm {
|
||||
template <> struct llvm::format_provider<lldb_private::Error> {
|
||||
static void format(const lldb_private::Error &error, llvm::raw_ostream &OS,
|
||||
llvm::StringRef Options) {
|
||||
llvm::format_provider<llvm::StringRef>::format(error.AsCString(), OS,
|
||||
Options);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endif // #if defined(__cplusplus)
|
||||
#endif // #ifndef __DCError_h__
|
||||
|
|
|
@ -2,6 +2,7 @@ add_lldb_unittest(LLDBCoreTests
|
|||
ArchSpecTest.cpp
|
||||
BroadcasterTest.cpp
|
||||
DataExtractorTest.cpp
|
||||
ErrorTest.cpp
|
||||
ListenerTest.cpp
|
||||
ScalarTest.cpp
|
||||
StructuredDataTest.cpp
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
//===-- ErrorTest.cpp -------------------------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
#include "lldb/Core/Error.h"
|
||||
|
||||
using namespace lldb_private;
|
||||
|
||||
TEST(ErrorTest, Formatv) {
|
||||
EXPECT_EQ("", llvm::formatv("{0}", Error()).str());
|
||||
EXPECT_EQ("Hello Error", llvm::formatv("{0}", Error("Hello Error")).str());
|
||||
EXPECT_EQ("Hello", llvm::formatv("{0:5}", Error("Hello Error")).str());
|
||||
}
|
Loading…
Reference in New Issue