From 827d5d74a5b6a1214cbaec74aeb4a8f73d21dca0 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Fri, 16 Dec 2016 04:27:00 +0000 Subject: Add methods to enable using formatv syntax in LLDB. This adds formatv-backed formatting functions in various places in LLDB such as StreamString, logging, constructing error messages, etc. A couple of callsites are changed from Printf style syntax to formatv style syntax to illustrate its usage. Additionally, a FileSpec formatter is introduced so that FileSpecs can be formatted natively. Differential Revision: https://reviews.llvm.org/D27632 llvm-svn: 289922 --- lldb/unittests/Host/FileSpecTest.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'lldb/unittests/Host/FileSpecTest.cpp') diff --git a/lldb/unittests/Host/FileSpecTest.cpp b/lldb/unittests/Host/FileSpecTest.cpp index 338515dd8ba..55a66b3b37e 100644 --- a/lldb/unittests/Host/FileSpecTest.cpp +++ b/lldb/unittests/Host/FileSpecTest.cpp @@ -260,3 +260,27 @@ TEST(FileSpecTest, GetNormalizedPath) { << "Original path: " << test.first; } } + +TEST(FileSpecTest, FormatFileSpec) { + auto win = FileSpec::ePathSyntaxWindows; + + FileSpec F; + EXPECT_EQ("(empty)", llvm::formatv("{0}", F).str()); + EXPECT_EQ("(empty)", llvm::formatv("{0:D}", F).str()); + EXPECT_EQ("(empty)", llvm::formatv("{0:F}", F).str()); + + F = FileSpec("C:\\foo\\bar.txt", false, win); + EXPECT_EQ("C:\\foo\\bar.txt", llvm::formatv("{0}", F).str()); + EXPECT_EQ("C:\\foo\\", llvm::formatv("{0:D}", F).str()); + EXPECT_EQ("bar.txt", llvm::formatv("{0:F}", F).str()); + + F = FileSpec("foo\\bar.txt", false, win); + EXPECT_EQ("foo\\bar.txt", llvm::formatv("{0}", F).str()); + EXPECT_EQ("foo\\", llvm::formatv("{0:D}", F).str()); + EXPECT_EQ("bar.txt", llvm::formatv("{0:F}", F).str()); + + F = FileSpec("foo", false, win); + EXPECT_EQ("foo", llvm::formatv("{0}", F).str()); + EXPECT_EQ("foo", llvm::formatv("{0:F}", F).str()); + EXPECT_EQ("(empty)", llvm::formatv("{0:D}", F).str()); +} \ No newline at end of file -- cgit v1.2.3