Hi aaron.ballman,
Make the negative test more specific.
Otherwise it can accidentally match injected code.
http://llvm-reviews.chandlerc.com/D2257
Files:
unittests/ASTMatchers/Dynamic/RegistryTest.cpp
Index: unittests/ASTMatchers/Dynamic/RegistryTest.cpp
===================================================================
--- unittests/ASTMatchers/Dynamic/RegistryTest.cpp
+++ unittests/ASTMatchers/Dynamic/RegistryTest.cpp
@@ -296,16 +296,16 @@
EXPECT_TRUE(matches("class Bar{};", D));
EXPECT_FALSE(matches("class OtherBar{};", D));
- D = constructMatcher(
- "recordDecl",
+ D = recordDecl(
+ has(fieldDecl(hasName("Foo"))),
constructMatcher(
"unless",
constructMatcher("namedDecl",
- constructMatcher("hasName", std::string("Bar")))))
- .getTypedMatcher<Decl>();
+ constructMatcher("hasName", std::string("Bar"))))
+ .getTypedMatcher<Decl>());
- EXPECT_FALSE(matches("class Bar{};", D));
- EXPECT_TRUE(matches("class OtherBar{};", D));
+ EXPECT_FALSE(matches("class Bar{ int Foo; };", D));
+ EXPECT_TRUE(matches("class OtherBar{ int Foo; };", D));
}
TEST_F(RegistryTest, Errors) {
Index: unittests/ASTMatchers/Dynamic/RegistryTest.cpp
===================================================================
--- unittests/ASTMatchers/Dynamic/RegistryTest.cpp
+++ unittests/ASTMatchers/Dynamic/RegistryTest.cpp
@@ -296,16 +296,16 @@
EXPECT_TRUE(matches("class Bar{};", D));
EXPECT_FALSE(matches("class OtherBar{};", D));
- D = constructMatcher(
- "recordDecl",
+ D = recordDecl(
+ has(fieldDecl(hasName("Foo"))),
constructMatcher(
"unless",
constructMatcher("namedDecl",
- constructMatcher("hasName", std::string("Bar")))))
- .getTypedMatcher<Decl>();
+ constructMatcher("hasName", std::string("Bar"))))
+ .getTypedMatcher<Decl>());
- EXPECT_FALSE(matches("class Bar{};", D));
- EXPECT_TRUE(matches("class OtherBar{};", D));
+ EXPECT_FALSE(matches("class Bar{ int Foo; };", D));
+ EXPECT_TRUE(matches("class OtherBar{ int Foo; };", D));
}
TEST_F(RegistryTest, Errors) {
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits