diff options
author | Daniel Jasper <djasper@google.com> | 2015-12-21 12:14:17 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2015-12-21 12:14:17 +0000 |
commit | 0bfdeb4b6dee9df4f165a2524c0fa8588a28e9f8 (patch) | |
tree | 0d394ddb205f53b76c43b2778959199ccae2ea67 /clang/unittests/Format/SortIncludesTest.cpp | |
parent | fde63cad6b7c179948377bf07e54f5809b0a832a (diff) | |
download | bcm5719-llvm-0bfdeb4b6dee9df4f165a2524c0fa8588a28e9f8.tar.gz bcm5719-llvm-0bfdeb4b6dee9df4f165a2524c0fa8588a28e9f8.zip |
clang-format: Extend detection of the "main" #include to use the filename
Before, the first (non-system) header in a file was considered to be
the main include. This is conservative as it makes clang-format change
the #include order less often. Instead implement some basic usage of
the filename itself. With this patch, clang-format considers every
header to be a main include if the header file's basename is a prefix
to the filename the #include is in.
llvm-svn: 256148
Diffstat (limited to 'clang/unittests/Format/SortIncludesTest.cpp')
-rw-r--r-- | clang/unittests/Format/SortIncludesTest.cpp | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/clang/unittests/Format/SortIncludesTest.cpp b/clang/unittests/Format/SortIncludesTest.cpp index 9b0db349b04..ce83091b715 100644 --- a/clang/unittests/Format/SortIncludesTest.cpp +++ b/clang/unittests/Format/SortIncludesTest.cpp @@ -166,13 +166,21 @@ TEST_F(SortIncludesTest, LeavesMainHeaderFirst) { "#include \"c.h\"\n", sort("#include \"llvm/a.h\"\n" "#include \"c.h\"\n" - "#include \"b.h\"\n")); + "#include \"b.h\"\n", + "a.cc")); EXPECT_EQ("#include \"llvm/a.h\"\n" "#include \"b.h\"\n" "#include \"c.h\"\n", sort("#include \"llvm/a.h\"\n" "#include \"c.h\"\n" "#include \"b.h\"\n", + "a_main.cc")); + EXPECT_EQ("#include \"llvm/input.h\"\n" + "#include \"b.h\"\n" + "#include \"c.h\"\n", + sort("#include \"llvm/input.h\"\n" + "#include \"c.h\"\n" + "#include \"b.h\"\n", "input.mm")); // Don't do this in headers. @@ -182,15 +190,27 @@ TEST_F(SortIncludesTest, LeavesMainHeaderFirst) { sort("#include \"llvm/a.h\"\n" "#include \"c.h\"\n" "#include \"b.h\"\n", - "some_header.h")); + "a.h")); } TEST_F(SortIncludesTest, NegativePriorities) { Style.IncludeCategories = {{".*important_os_header.*", -1}, {".*", 1}}; EXPECT_EQ("#include \"important_os_header.h\"\n" - "#include \"a.h\"\n", - sort("#include \"a.h\"\n" - "#include \"important_os_header.h\"\n")); + "#include \"c_main.h\"\n" + "#include \"a_other.h\"\n", + sort("#include \"c_main.h\"\n" + "#include \"a_other.h\"\n" + "#include \"important_os_header.h\"\n", + "c_main.cc")); + + // check stable when re-run + EXPECT_EQ("#include \"important_os_header.h\"\n" + "#include \"c_main.h\"\n" + "#include \"a_other.h\"\n", + sort("#include \"important_os_header.h\"\n" + "#include \"c_main.h\"\n" + "#include \"a_other.h\"\n", + "c_main.cc")); } TEST_F(SortIncludesTest, CalculatesCorrectCursorPosition) { |