diff options
author | Nikola Smiljanic <popizdeh@gmail.com> | 2014-06-06 04:40:35 +0000 |
---|---|---|
committer | Nikola Smiljanic <popizdeh@gmail.com> | 2014-06-06 04:40:35 +0000 |
commit | 5db2c779a8a3817ffd7bee2f7cbcd4ca7e324611 (patch) | |
tree | e23db097528c377a40c961066253c2d1120032b5 /unittests | |
parent | acdc0bbbd0d6032dd451784b7c860431ea18cbc7 (diff) | |
download | clang-5db2c779a8a3817ffd7bee2f7cbcd4ca7e324611.tar.gz clang-5db2c779a8a3817ffd7bee2f7cbcd4ca7e324611.tar.bz2 clang-5db2c779a8a3817ffd7bee2f7cbcd4ca7e324611.tar.xz |
Add first set of tests for FriendDecl source range and location.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210306 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/AST/SourceLocationTest.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/unittests/AST/SourceLocationTest.cpp b/unittests/AST/SourceLocationTest.cpp index 6e94442944..dc00b86fc2 100644 --- a/unittests/AST/SourceLocationTest.cpp +++ b/unittests/AST/SourceLocationTest.cpp @@ -263,6 +263,84 @@ TEST(UnresolvedUsingValueDecl, SourceRange) { unresolvedUsingValueDecl())); } +TEST(FriendDecl, FriendFunctionLocation) { + LocationVerifier<FriendDecl> Verifier; + Verifier.expectLocation(2, 13); + EXPECT_TRUE(Verifier.match("struct A {\n" + "friend void f();\n" + "};\n", + friendDecl())); +} + +TEST(FriendDecl, FriendFunctionRange) { + RangeVerifier<FriendDecl> Verifier; + Verifier.expectRange(2, 1, 2, 15); + EXPECT_TRUE(Verifier.match("struct A {\n" + "friend void f();\n" + "};\n", + friendDecl())); +} + +TEST(FriendDecl, FriendClassLocation) { + LocationVerifier<FriendDecl> Verifier; + Verifier.expectLocation(2, 8); + EXPECT_TRUE(Verifier.match("struct A {\n" + "friend class B;\n" + "};\n", + friendDecl())); +} + +TEST(FriendDecl, FriendClassRange) { + RangeVerifier<FriendDecl> Verifier; + Verifier.expectRange(2, 1, 2, 14); + EXPECT_TRUE(Verifier.match("struct A {\n" + "friend class B;\n" + "};\n", + friendDecl())); +} + +TEST(FriendDecl, FriendTemplateParameterLocation) { + LocationVerifier<FriendDecl> Verifier; + Verifier.expectLocation(3, 8); + EXPECT_TRUE(Verifier.match("template <typename T>\n" + "struct A {\n" + "friend T;\n" + "};\n", + friendDecl(), Lang_CXX11)); +} + +TEST(FriendDecl, FriendTemplateParameterRange) { + RangeVerifier<FriendDecl> Verifier; + Verifier.expectRange(3, 1, 3, 8); + EXPECT_TRUE(Verifier.match("template <typename T>\n" + "struct A {\n" + "friend T;\n" + "};\n", + friendDecl(), Lang_CXX11)); +} + +TEST(FriendDecl, FriendDecltypeLocation) { + LocationVerifier<FriendDecl> Verifier; + Verifier.expectLocation(4, 8); + EXPECT_TRUE(Verifier.match("struct A;\n" + "A foo();\n" + "struct A {\n" + "friend decltype(foo());\n" + "};\n", + friendDecl(), Lang_CXX11)); +} + +TEST(FriendDecl, FriendDecltypeRange) { + RangeVerifier<FriendDecl> Verifier; + Verifier.expectRange(4, 1, 4, 8); + EXPECT_TRUE(Verifier.match("struct A;\n" + "A foo();\n" + "struct A {\n" + "friend decltype(foo());\n" + "};\n", + friendDecl(), Lang_CXX11)); +} + TEST(FriendDecl, InstantiationSourceRange) { RangeVerifier<FriendDecl> Verifier; Verifier.expectRange(4, 3, 4, 35); |