================ @@ -153,10 +173,37 @@ constexpr llvm::StringRef lookupStrings[] = { "${target.file.fullpath}", "${var.dummy-var-to-test-wildcard}"}; -TEST(FormatEntity, LookupAllEntriesInTree) { +TEST_F(FormatEntityTest, LookupAllEntriesInTree) { for (const llvm::StringRef testString : lookupStrings) { Entry e; EXPECT_TRUE(FormatEntity::Parse(testString, e).Success()) << "Formatting " << testString << " did not succeed"; } } + +TEST_F(FormatEntityTest, Scope) { + // Scope with one alternative. + EXPECT_THAT_EXPECTED(Format("{${frame.pc}|foo}"), HasValue("foo")); + + // Scope with multiple alternatives. + EXPECT_THAT_EXPECTED(Format("{${frame.pc}|${function.name}|foo}"), + HasValue("foo")); + + // Escaped pipe inside a scope. + EXPECT_THAT_EXPECTED(Format("{foo\\|bar}"), HasValue("foo|bar")); + + // Unescaped pipe outside a scope. + EXPECT_THAT_EXPECTED(Format("foo|bar"), HasValue("foo|bar")); + + // Nested scopes. Note that scopes always resolve. + EXPECT_THAT_EXPECTED(Format("{{${frame.pc}|foo}|{bar}}"), HasValue("foo")); + EXPECT_THAT_EXPECTED(Format("{{${frame.pc}}|{bar}}"), HasValue("")); ---------------- JDevlieghere wrote:
I'm on the fence. It's probably not too hard to implement (although you need to be careful to only trigger this for an alternative scope, a regular nested scope is okay). On the other hand, if you know how a scope works, I think this behaves pretty much as expected, it's just a rather unhelpful thing to do. I don't think we have precedence for diagnosing something like this. I can see how "clean" or "ugly" it is to implement and that might sway me one way or another. https://github.com/llvm/llvm-project/pull/137751 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits