summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2018-10-29 18:59:56 +0000
committerStephen Kelly <steveire@gmail.com>2018-10-29 18:59:56 +0000
commita49fe5d878fc8b9246e8ab53862077c21c22cc8c (patch)
treed54213b232998c059f1063d71a674689ee6875e6 /clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
parenteb15d00193f75396c69cfa28b314fd5165d4c3fe (diff)
downloadbcm5719-llvm-a49fe5d878fc8b9246e8ab53862077c21c22cc8c.tar.gz
bcm5719-llvm-a49fe5d878fc8b9246e8ab53862077c21c22cc8c.zip
[clang-query] Add non-exclusive output API
Summary: Add granular options for AST dumping, text printing and diagnostics. This makes it possible to * Have both diag and dump active at once * Extend the output with other queryable content in the future. Reviewers: aaron.ballman, pcc, ioeric, ilya-biryukov, klimek, sammccall Reviewed By: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52857 llvm-svn: 345522
Diffstat (limited to 'clang-tools-extra/unittests/clang-query/QueryParserTest.cpp')
-rw-r--r--clang-tools-extra/unittests/clang-query/QueryParserTest.cpp39
1 files changed, 36 insertions, 3 deletions
diff --git a/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp b/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
index 0d1a8a1de19..d4c384c4d51 100644
--- a/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
+++ b/clang-tools-extra/unittests/clang-query/QueryParserTest.cpp
@@ -90,6 +90,18 @@ TEST_F(QueryParserTest, Set) {
ASSERT_TRUE(isa<SetExclusiveOutputQuery>(Q));
EXPECT_EQ(&QuerySession::DetailedASTOutput, cast<SetExclusiveOutputQuery>(Q)->Var);
+ Q = parse("enable output detailed-ast");
+ ASSERT_TRUE(isa<EnableOutputQuery>(Q));
+ EXPECT_EQ(&QuerySession::DetailedASTOutput, cast<EnableOutputQuery>(Q)->Var);
+
+ Q = parse("enable");
+ ASSERT_TRUE(isa<InvalidQuery>(Q));
+ EXPECT_EQ("expected variable name", cast<InvalidQuery>(Q)->ErrStr);
+
+ Q = parse("disable output detailed-ast");
+ ASSERT_TRUE(isa<DisableOutputQuery>(Q));
+ EXPECT_EQ(&QuerySession::DetailedASTOutput, cast<DisableOutputQuery>(Q)->Var);
+
Q = parse("set bind-root foo");
ASSERT_TRUE(isa<InvalidQuery>(Q));
EXPECT_EQ("expected 'true' or 'false', got 'foo'",
@@ -163,7 +175,7 @@ TEST_F(QueryParserTest, Comment) {
TEST_F(QueryParserTest, Complete) {
std::vector<llvm::LineEditor::Completion> Comps =
QueryParser::complete("", 0, QS);
- ASSERT_EQ(6u, Comps.size());
+ ASSERT_EQ(8u, Comps.size());
EXPECT_EQ("help ", Comps[0].TypedText);
EXPECT_EQ("help", Comps[0].DisplayText);
EXPECT_EQ("let ", Comps[1].TypedText);
@@ -174,14 +186,35 @@ TEST_F(QueryParserTest, Complete) {
EXPECT_EQ("quit", Comps[3].DisplayText);
EXPECT_EQ("set ", Comps[4].TypedText);
EXPECT_EQ("set", Comps[4].DisplayText);
- EXPECT_EQ("unlet ", Comps[5].TypedText);
- EXPECT_EQ("unlet", Comps[5].DisplayText);
+ EXPECT_EQ("enable ", Comps[5].TypedText);
+ EXPECT_EQ("enable", Comps[5].DisplayText);
+ EXPECT_EQ("disable ", Comps[6].TypedText);
+ EXPECT_EQ("disable", Comps[6].DisplayText);
+ EXPECT_EQ("unlet ", Comps[7].TypedText);
+ EXPECT_EQ("unlet", Comps[7].DisplayText);
Comps = QueryParser::complete("set o", 5, QS);
ASSERT_EQ(1u, Comps.size());
EXPECT_EQ("utput ", Comps[0].TypedText);
EXPECT_EQ("output", Comps[0].DisplayText);
+ Comps = QueryParser::complete("enable ", 7, QS);
+ ASSERT_EQ(1u, Comps.size());
+ EXPECT_EQ("output ", Comps[0].TypedText);
+ EXPECT_EQ("output", Comps[0].DisplayText);
+
+ Comps = QueryParser::complete("enable output ", 14, QS);
+ ASSERT_EQ(4u, Comps.size());
+
+ EXPECT_EQ("diag ", Comps[0].TypedText);
+ EXPECT_EQ("diag", Comps[0].DisplayText);
+ EXPECT_EQ("print ", Comps[1].TypedText);
+ EXPECT_EQ("print", Comps[1].DisplayText);
+ EXPECT_EQ("detailed-ast ", Comps[2].TypedText);
+ EXPECT_EQ("detailed-ast", Comps[2].DisplayText);
+ EXPECT_EQ("dump ", Comps[3].TypedText);
+ EXPECT_EQ("dump", Comps[3].DisplayText);
+
Comps = QueryParser::complete("match while", 11, QS);
ASSERT_EQ(1u, Comps.size());
EXPECT_EQ("Stmt(", Comps[0].TypedText);
OpenPOWER on IntegriCloud