Add format_provider for the MemoryRegionInfo::OptionalBool enum

llvm-svn: 295821
This commit is contained in:
Pavel Labath 2017-02-22 10:37:57 +00:00
parent 6f224d2bc0
commit 048b3ece1d
3 changed files with 42 additions and 0 deletions

View File

@ -12,6 +12,7 @@
#define lldb_MemoryRegionInfo_h
#include "lldb/Core/RangeMap.h"
#include "llvm/Support/FormatProviders.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/Range.h"
@ -100,4 +101,24 @@ protected:
};
}
namespace llvm {
template <>
struct format_provider<lldb_private::MemoryRegionInfo::OptionalBool> {
static void format(const lldb_private::MemoryRegionInfo::OptionalBool &B,
raw_ostream &OS, StringRef Options) {
switch(B) {
case lldb_private::MemoryRegionInfo::eNo:
OS << "no";
return;
case lldb_private::MemoryRegionInfo::eYes:
OS << "yes";
return;
case lldb_private::MemoryRegionInfo::eDontKnow:
OS << "don't know";
return;
}
}
};
}
#endif // #ifndef lldb_MemoryRegionInfo_h

View File

@ -1,4 +1,5 @@
add_lldb_unittest(TargetTests
MemoryRegionInfoTest.cpp
ModuleCacheTest.cpp
LINK_LIBS

View File

@ -0,0 +1,20 @@
//===-- MemoryRegionInfoTest.cpp --------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "lldb/Target/MemoryRegionInfo.h"
#include "llvm/Support/FormatVariadic.h"
#include "gtest/gtest.h"
using namespace lldb_private;
TEST(MemoryRegionInfoTest, Formatv) {
EXPECT_EQ("yes", llvm::formatv("{0}", MemoryRegionInfo::eYes).str());
EXPECT_EQ("no", llvm::formatv("{0}", MemoryRegionInfo::eNo).str());
EXPECT_EQ("don't know", llvm::formatv("{0}", MemoryRegionInfo::eDontKnow).str());
}