Parser/Registry argument enhancements.
Summary:
Parser/Registry argument enhancements.
- 2 argument support.
- unsigned values support.
Reviewers: klimek
CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D915
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183231 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp b/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp
index 6c202e5..2aa0e42 100644
--- a/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp
+++ b/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp
@@ -19,6 +19,19 @@
using ast_matchers::internal::DynTypedMatcher;
using ast_matchers::internal::Matcher;
+TEST(VariantValueTest, Unsigned) {
+ const unsigned kUnsigned = 17;
+ VariantValue Value = kUnsigned;
+
+ EXPECT_TRUE(Value.isUnsigned());
+ EXPECT_EQ(kUnsigned, Value.getUnsigned());
+
+ EXPECT_FALSE(Value.isString());
+ EXPECT_FALSE(Value.isMatcher());
+ EXPECT_FALSE(Value.isTypedMatcher<clang::Decl>());
+ EXPECT_FALSE(Value.isTypedMatcher<clang::UnaryOperator>());
+}
+
TEST(VariantValueTest, String) {
const ::std::string kString = "string";
VariantValue Value = kString;
@@ -26,6 +39,7 @@
EXPECT_TRUE(Value.isString());
EXPECT_EQ(kString, Value.getString());
+ EXPECT_FALSE(Value.isUnsigned());
EXPECT_FALSE(Value.isMatcher());
EXPECT_FALSE(Value.isTypedMatcher<clang::Decl>());
EXPECT_FALSE(Value.isTypedMatcher<clang::UnaryOperator>());
@@ -34,6 +48,7 @@
TEST(VariantValueTest, DynTypedMatcher) {
VariantValue Value = stmt();
+ EXPECT_FALSE(Value.isUnsigned());
EXPECT_FALSE(Value.isString());
EXPECT_TRUE(Value.isMatcher());
@@ -59,15 +74,24 @@
VariantValue Value = std::string("A");
EXPECT_TRUE(Value.isString());
EXPECT_EQ("A", Value.getString());
+ EXPECT_FALSE(Value.isUnsigned());
EXPECT_FALSE(Value.isMatcher());
Value = recordDecl();
+ EXPECT_FALSE(Value.isUnsigned());
EXPECT_FALSE(Value.isString());
EXPECT_TRUE(Value.isMatcher());
EXPECT_TRUE(Value.isTypedMatcher<clang::Decl>());
EXPECT_TRUE(Value.isTypedMatcher<clang::UnaryOperator>());
+ Value = 17;
+ EXPECT_TRUE(Value.isUnsigned());
+ EXPECT_EQ(17U, Value.getUnsigned());
+ EXPECT_FALSE(Value.isMatcher());
+ EXPECT_FALSE(Value.isString());
+
Value = VariantValue();
+ EXPECT_FALSE(Value.isUnsigned());
EXPECT_FALSE(Value.isString());
EXPECT_FALSE(Value.isMatcher());
}