Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
clang/unittests/Format/FormatTest.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 7,283 Lines • ▼ Show 20 Lines | for (int i = 0; i < 4; ++i) { | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | ||||
verifyFormat("Constructor()\n" | verifyFormat("Constructor()\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a)\n" | " : aaaaaaaaaaaaaaaaaaaa(a)\n" | ||||
" , bbbbbbbbbbbbbbbbbbbbb(b) {}", | " , bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
verifyFormat("Constructor() : a(a), b(b) {}", Style); | verifyFormat("Constructor() : a(a), b(b) {}", Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("Constructor()\n" | |||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | |||||
Style); | |||||
verifyFormat("Constructor()\n" | |||||
" : a(a), b(b) {}", | |||||
Style); | |||||
owenpan: Can you add this test to before/after colon below (and elsewhere if applicable)? | |||||
verifyFormat("Constructor()\n" | |||||
Can you add a test here and elsewhere for constructors that don't fit on the next line? owenpan: Can you add a test here and elsewhere for constructors that don't fit on the next line? | |||||
" : aaaaaaaaaaaaaaaaaaaa(a)\n" | |||||
" , bbbbbbbbbbbbbbbbbbbbb(b)\n" | |||||
" , cccccccccccccccccccccc(c) {}", | |||||
Style); | |||||
Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeColon; | Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeColon; | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | ||||
verifyFormat("Constructor()\n" | verifyFormat("Constructor()\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | " : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | ||||
verifyFormat("Constructor()\n" | verifyFormat("Constructor()\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a),\n" | " : aaaaaaaaaaaaaaaaaaaa(a),\n" | ||||
" bbbbbbbbbbbbbbbbbbbbb(b) {}", | " bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("Constructor()\n" | |||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | |||||
Style); | |||||
verifyFormat("Constructor()\n" | |||||
" : a(a), b(b) {}", | |||||
Style); | |||||
verifyFormat("Constructor()\n" | |||||
" : aaaaaaaaaaaaaaaaaaaa(a),\n" | |||||
" bbbbbbbbbbbbbbbbbbbbb(b),\n" | |||||
" cccccccccccccccccccccc(c) {}", | |||||
Style); | |||||
Style.BreakConstructorInitializers = FormatStyle::BCIS_AfterColon; | Style.BreakConstructorInitializers = FormatStyle::BCIS_AfterColon; | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | ||||
verifyFormat("Constructor() :\n" | verifyFormat("Constructor() :\n" | ||||
" aaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | " aaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | ||||
verifyFormat("Constructor() :\n" | verifyFormat("Constructor() :\n" | ||||
" aaaaaaaaaaaaaaaaaa(a),\n" | " aaaaaaaaaaaaaaaaaa(a),\n" | ||||
" bbbbbbbbbbbbbbbbbbbbb(b) {}", | " bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("Constructor() :\n" | |||||
" aaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | |||||
Style); | |||||
verifyFormat("Constructor() :\n" | |||||
" a(a), b(b) {}", | |||||
Style); | |||||
verifyFormat("Constructor() :\n" | |||||
" aaaaaaaaaaaaaaaaaaaa(a),\n" | |||||
" bbbbbbbbbbbbbbbbbbbbb(b),\n" | |||||
" cccccccccccccccccccccc(c) {}", | |||||
Style); | |||||
} | } | ||||
// Test interactions between AllowAllParametersOfDeclarationOnNextLine and | // Test interactions between AllowAllParametersOfDeclarationOnNextLine and | ||||
// AllowAllConstructorInitializersOnNextLine in all | // AllowAllConstructorInitializersOnNextLine in all | ||||
// BreakConstructorInitializers modes | // BreakConstructorInitializers modes | ||||
Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeComma; | Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeComma; | ||||
Style.AllowAllParametersOfDeclarationOnNextLine = true; | Style.AllowAllParametersOfDeclarationOnNextLine = true; | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | |||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa, int bbbbbbbbbbbbb)\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa, int bbbbbbbbbbbbb)\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a)\n" | " : aaaaaaaaaaaaaaaaaaaa(a)\n" | ||||
" , bbbbbbbbbbbbbbbbbbbbb(b) {}", | " , bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | ||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | ||||
" int bbbbbbbbbbbbb,\n" | " int bbbbbbbbbbbbb,\n" | ||||
" int cccccccccccccccc)\n" | " int cccccccccccccccc)\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | " : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | |||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | |||||
" int bbbbbbbbbbbbb,\n" | |||||
" int cccccccccccccccc)\n" | |||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | |||||
Style); | |||||
Style.AllowAllParametersOfDeclarationOnNextLine = false; | Style.AllowAllParametersOfDeclarationOnNextLine = false; | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | ||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | ||||
" int bbbbbbbbbbbbb)\n" | " int bbbbbbbbbbbbb)\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a)\n" | " : aaaaaaaaaaaaaaaaaaaa(a)\n" | ||||
" , bbbbbbbbbbbbbbbbbbbbb(b) {}", | " , bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Show All 10 Lines | TEST_F(FormatTest, AllowAllConstructorInitializersOnNextLine) { | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | ||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | ||||
" int bbbbbbbbbbbbb,\n" | " int bbbbbbbbbbbbb,\n" | ||||
" int cccccccccccccccc)\n" | " int cccccccccccccccc)\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | " : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | |||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | |||||
" int bbbbbbbbbbbbb,\n" | |||||
" int cccccccccccccccc)\n" | |||||
" : aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | |||||
Style); | |||||
Style.AllowAllParametersOfDeclarationOnNextLine = false; | Style.AllowAllParametersOfDeclarationOnNextLine = false; | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | ||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | ||||
" int bbbbbbbbbbbbb)\n" | " int bbbbbbbbbbbbb)\n" | ||||
" : aaaaaaaaaaaaaaaaaaaa(a),\n" | " : aaaaaaaaaaaaaaaaaaaa(a),\n" | ||||
" bbbbbbbbbbbbbbbbbbbbb(b) {}", | " bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Show All 9 Lines | TEST_F(FormatTest, AllowAllConstructorInitializersOnNextLine) { | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | ||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | ||||
" int bbbbbbbbbbbbb,\n" | " int bbbbbbbbbbbbb,\n" | ||||
" int cccccccccccccccc) :\n" | " int cccccccccccccccc) :\n" | ||||
" aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | " aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | |||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | |||||
" int bbbbbbbbbbbbb,\n" | |||||
" int cccccccccccccccc) :\n" | |||||
" aaaaaaaaaaaaaaaaaaaa(a), bbbbbbbbbbbbbbbbbbbbb(b) {}", | |||||
Style); | |||||
Style.AllowAllParametersOfDeclarationOnNextLine = false; | Style.AllowAllParametersOfDeclarationOnNextLine = false; | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | Style.PackConstructorInitializers = FormatStyle::PCIS_CurrentLine; | ||||
verifyFormat("SomeClassWithALongName::Constructor(\n" | verifyFormat("SomeClassWithALongName::Constructor(\n" | ||||
" int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | " int aaaaaaaaaaaaaaaaaaaaaaaa,\n" | ||||
" int bbbbbbbbbbbbb) :\n" | " int bbbbbbbbbbbbb) :\n" | ||||
" aaaaaaaaaaaaaaaaaaaa(a),\n" | " aaaaaaaaaaaaaaaaaaaa(a),\n" | ||||
" bbbbbbbbbbbbbbbbbbbbb(b) {}", | " bbbbbbbbbbbbbbbbbbbbb(b) {}", | ||||
Style); | Style); | ||||
▲ Show 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | verifyFormat( | ||||
"SomeClass::Constructor() :\n" | "SomeClass::Constructor() :\n" | ||||
" aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | " aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | ||||
Style); | Style); | ||||
verifyFormat( | verifyFormat( | ||||
"SomeClass::Constructor() : // NOLINT\n" | "SomeClass::Constructor() : // NOLINT\n" | ||||
" aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | " aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat( | |||||
"SomeClass::Constructor() :\n" | |||||
" aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | |||||
Style); | |||||
verifyFormat( | |||||
"SomeClass::Constructor() : // NOLINT\n" | |||||
" aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | |||||
Style); | |||||
Style.PackConstructorInitializers = FormatStyle::PCIS_BinPack; | Style.PackConstructorInitializers = FormatStyle::PCIS_BinPack; | ||||
verifyFormat( | verifyFormat( | ||||
"SomeClass::Constructor() :\n" | "SomeClass::Constructor() :\n" | ||||
" aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | " aaaaaaaaaaaaa(aaaaaaaaaaaaaa), aaaaaaaaaaaaaaa(aaaaaaaaaaaa) {}", | ||||
Style); | Style); | ||||
verifyFormat( | verifyFormat( | ||||
"SomeClass::Constructor() :\n" | "SomeClass::Constructor() :\n" | ||||
▲ Show 20 Lines • Show All 242 Lines • ▼ Show 20 Lines | TEST_F(FormatTest, MemoizationTests) { | ||||
OnePerLine.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | OnePerLine.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | ||||
OnePerLine.BinPackParameters = false; | OnePerLine.BinPackParameters = false; | ||||
std::string input = "Constructor()\n" | std::string input = "Constructor()\n" | ||||
" : aaaa(a,\n"; | " : aaaa(a,\n"; | ||||
for (unsigned i = 0, e = 80; i != e; ++i) | for (unsigned i = 0, e = 80; i != e; ++i) | ||||
input += " a,\n"; | input += " a,\n"; | ||||
input += " a) {}"; | input += " a) {}"; | ||||
verifyFormat(input, OnePerLine); | verifyFormat(input, OnePerLine); | ||||
OnePerLine.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat(input, OnePerLine); | |||||
} | } | ||||
#endif | #endif | ||||
TEST_F(FormatTest, BreaksAsHighAsPossible) { | TEST_F(FormatTest, BreaksAsHighAsPossible) { | ||||
verifyFormat( | verifyFormat( | ||||
"void f() {\n" | "void f() {\n" | ||||
" if ((aaaaaaaaaaaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaaaaaaaa) ||\n" | " if ((aaaaaaaaaaaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaaaaaaaa) ||\n" | ||||
" (bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb && bbbbbbbbbbbbbbbbbbbbbbbbbb))\n" | " (bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb && bbbbbbbbbbbbbbbbbbbbbbbbbb))\n" | ||||
▲ Show 20 Lines • Show All 13,030 Lines • ▼ Show 20 Lines | TEST_F(FormatTest, BreakConstructorInitializersBeforeComma) { | ||||
verifyFormat("SomeClass::Constructor() : aaaaaaaa(aaaaaaaa) {}", Style); | verifyFormat("SomeClass::Constructor() : aaaaaaaa(aaaaaaaa) {}", Style); | ||||
verifyFormat( | verifyFormat( | ||||
"SomeClass::Constructor() : aaaaa(aaaaa), aaaaa(aaaaa), aaaaa(aaaaa)\n", | "SomeClass::Constructor() : aaaaa(aaaaa), aaaaa(aaaaa), aaaaa(aaaaa)\n", | ||||
Style); | Style); | ||||
verifyFormat( | verifyFormat( | ||||
"SomeClass::Constructor()\n" | "SomeClass::Constructor()\n" | ||||
" : aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa) {}", | " : aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("SomeClass::Constructor()\n" | |||||
" : aaaaaaaa(aaaaaaaa) {}", | |||||
Style); | |||||
verifyFormat("SomeClass::Constructor()\n" | |||||
" : aaaaa(aaaaa), aaaaa(aaaaa), aaaaa(aaaaa)\n", | |||||
Style); | |||||
verifyFormat( | |||||
"SomeClass::Constructor()\n" | |||||
" : aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa), aaaaaaaa(aaaaaaaa) {}", | |||||
Style); | |||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLine; | |||||
Style.ConstructorInitializerIndentWidth = 4; | Style.ConstructorInitializerIndentWidth = 4; | ||||
Style.ColumnLimit = 60; | Style.ColumnLimit = 60; | ||||
verifyFormat("SomeClass::Constructor()\n" | verifyFormat("SomeClass::Constructor()\n" | ||||
" : aaaaaaaa(aaaaaaaa)\n" | " : aaaaaaaa(aaaaaaaa)\n" | ||||
" , aaaaaaaa(aaaaaaaa)\n" | " , aaaaaaaa(aaaaaaaa)\n" | ||||
" , aaaaaaaa(aaaaaaaa) {}", | " , aaaaaaaa(aaaaaaaa) {}", | ||||
Style); | Style); | ||||
Style.PackConstructorInitializers = FormatStyle::PCIS_NextLineOnly; | |||||
verifyFormat("SomeClass::Constructor()\n" | |||||
" : aaaaaaaa(aaaaaaaa)\n" | |||||
" , aaaaaaaa(aaaaaaaa)\n" | |||||
" , aaaaaaaa(aaaaaaaa) {}", | |||||
Style); | |||||
} | } | ||||
TEST_F(FormatTest, ConstructorInitializersWithPreprocessorDirective) { | TEST_F(FormatTest, ConstructorInitializersWithPreprocessorDirective) { | ||||
FormatStyle Style = getLLVMStyle(); | FormatStyle Style = getLLVMStyle(); | ||||
Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeComma; | Style.BreakConstructorInitializers = FormatStyle::BCIS_BeforeComma; | ||||
Style.ConstructorInitializerIndentWidth = 4; | Style.ConstructorInitializerIndentWidth = 4; | ||||
verifyFormat("SomeClass::Constructor()\n" | verifyFormat("SomeClass::Constructor()\n" | ||||
" : a{a}\n" | " : a{a}\n" | ||||
▲ Show 20 Lines • Show All 4,409 Lines • Show Last 20 Lines |
Can you add this test to before/after colon below (and elsewhere if applicable)?