1b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar//===- unittest/Format/FormatTestSelective.cpp - Formatting unit tests ----===// 2b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// 3b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// The LLVM Compiler Infrastructure 4b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// 5b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// This file is distributed under the University of Illinois Open Source 6b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// License. See LICENSE.TXT for details. 7b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar// 8b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar//===----------------------------------------------------------------------===// 9b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 10b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar#include "FormatTestUtils.h" 11b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar#include "clang/Format/Format.h" 12b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar#include "llvm/Support/Debug.h" 13b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar#include "gtest/gtest.h" 14b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 15b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar#define DEBUG_TYPE "format-test" 16b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 17b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainarnamespace clang { 18b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainarnamespace format { 19b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainarnamespace { 20b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 21b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainarclass FormatTestSelective : public ::testing::Test { 22b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainarprotected: 23b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar std::string format(llvm::StringRef Code, unsigned Offset, unsigned Length) { 24b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar DEBUG(llvm::errs() << "---\n"); 25b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar DEBUG(llvm::errs() << Code << "\n\n"); 26b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar std::vector<tooling::Range> Ranges(1, tooling::Range(Offset, Length)); 27b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar bool IncompleteFormat = false; 28b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar tooling::Replacements Replaces = 29b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar reformat(Style, Code, Ranges, "<stdin>", &IncompleteFormat); 30b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_FALSE(IncompleteFormat) << Code << "\n\n"; 314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar auto Result = applyAllReplacements(Code, Replaces); 324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar EXPECT_TRUE(static_cast<bool>(Result)); 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar DEBUG(llvm::errs() << "\n" << *Result << "\n\n"); 344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return *Result; 35b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar } 36b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 37b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar FormatStyle Style = getLLVMStyle(); 38b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar}; 39b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 40b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, RemovesTrailingWhitespaceOfFormattedLine) { 41b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;\nint b;", format("int a; \nint b;", 0, 0)); 42b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;", format("int a; ", 0, 0)); 43b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;\n", format("int a; \n \n \n ", 0, 0)); 44b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;\nint b; ", format("int a; \nint b; ", 0, 0)); 45b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 46b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 47b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, FormatsCorrectRegionForLeadingWhitespace) { 4887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar EXPECT_EQ("{int b;\n" 4987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int a;\n" 5087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 5187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar format("{int b;\n int a;}", 8, 0)); 5287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar EXPECT_EQ("{\n" 5387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int b;\n" 5487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int a;}", 5587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar format("{int b;\n int a;}", 7, 0)); 56b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 57b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.ColumnLimit = 12; 58b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("#define A \\\n" 59b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a; \\\n" 60b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;", 61b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("#define A \\\n" 62b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a; \\\n" 63b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;", 64b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 26, 0)); 65b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("#define A \\\n" 66b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a; \\\n" 67b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;", 68b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("#define A \\\n" 69b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a; \\\n" 70b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;", 71b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 25, 0)); 72b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 73b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 74b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, FormatLineWhenInvokedOnTrailingNewline) { 75b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int b;\n\nint a;", format("int b;\n\nint a;", 8, 0)); 76b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int b;\n\nint a;", format("int b;\n\nint a;", 7, 0)); 77b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 78b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar // This might not strictly be correct, but is likely good in all practical 79b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar // cases. 80b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int b;\nint a;", format("int b;int a;", 7, 0)); 81b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 82b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 83b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, RemovesWhitespaceWhenTriggeredOnEmptyLine) { 84b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;\n\n int b;", format("int a;\n \n\n int b;", 8, 0)); 85b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;\n\n int b;", format("int a;\n \n\n int b;", 9, 0)); 86b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 87b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 88b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, ReformatsMovedLines) { 89b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ( 90b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "template <typename T> T *getFETokenInfo() const {\n" 91b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " return static_cast<T *>(FETokenInfo);\n" 92b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 9387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "int a; // <- Should not be formatted", 94b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format( 95b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "template<typename T>\n" 96b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "T *getFETokenInfo() const { return static_cast<T*>(FETokenInfo); }\n" 9787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "int a; // <- Should not be formatted", 98b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 9, 5)); 99b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 100b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 101b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, FormatsIfWithoutCompoundStatement) { 102b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.AllowShortIfStatementsOnASingleLine = true; 103b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("if (a) return;", format("if(a)\nreturn;", 7, 1)); 104b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("if (a) return; // comment", 105b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("if(a)\nreturn; // comment", 20, 1)); 106b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 107b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 108b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, FormatsCommentsLocally) { 109b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a; // comment\n" 110b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b; // comment", 111b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a; // comment\n" 112b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b; // comment", 113b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 114b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a; // comment\n" 115b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // line 2\n" 116b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;", 117b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a; // comment\n" 118b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // line 2\n" 119b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;", 120b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 28, 0)); 121b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int aaaaaa; // comment\n" 122b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;\n" 123b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int c; // unrelated comment", 124b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int aaaaaa; // comment\n" 125b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;\n" 126b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int c; // unrelated comment", 127b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 31, 0)); 128b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 129b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a; // This\n" 130b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // is\n" 131b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // a", 132b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a; // This\n" 133b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // is\n" 134b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // a", 135b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 136b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a; // This\n" 137b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // is\n" 138b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // a\n" 139b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "// This is b\n" 140b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;", 141b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a; // This\n" 142b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // is\n" 143b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // a\n" 144b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "// This is b\n" 145b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;", 146b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 147b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a; // This\n" 148b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // is\n" 149b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // a\n" 150b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\n" 15187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "//This is unrelated", 152b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a; // This\n" 153b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // is\n" 154b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // a\n" 155b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\n" 15687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "//This is unrelated", 157b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 158b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a;\n" 159b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "// This is\n" 160b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "// not formatted. ", 161b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a;\n" 162b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "// This is\n" 163b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "// not formatted. ", 164b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 1654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar EXPECT_EQ("int x; // Format this line.\n" 1664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "int xx; //\n" 1674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "int xxxxx; //", 1684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar format("int x; // Format this line.\n" 1694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "int xx; //\n" 1704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "int xxxxx; //", 1714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 0, 0)); 172b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 173b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 174b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, IndividualStatementsOfNestedBlocks) { 175b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("DEBUG({\n" 176b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 177b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 178b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 179b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("DEBUG( {\n" 180b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 181b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 182b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "} ) ;", 183b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 20, 1)); 184b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("DEBUG( {\n" 185b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 186b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 187b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "} ) ;", 188b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("DEBUG( {\n" 189b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 190b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 191b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "} ) ;", 192b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 41, 1)); 193b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("DEBUG( {\n" 194b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 195b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 196b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "} ) ;", 197b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("DEBUG( {\n" 198b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 199b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 200b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "} ) ;", 201b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 41, 1)); 202b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("DEBUG({\n" 203b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 204b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 205b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 206b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("DEBUG( {\n" 207b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 208b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 209b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "} ) ;", 210b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 20, 1)); 211b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 212b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("Debug({\n" 213b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " if (aaaaaaaaaaaaaaaaaaaaaaaa)\n" 214b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " return;\n" 215b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " },\n" 216b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " a);", 217b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("Debug({\n" 218b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " if (aaaaaaaaaaaaaaaaaaaaaaaa)\n" 219b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " return;\n" 220b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " },\n" 221b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " a);", 222b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 50, 1)); 223b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("DEBUG({\n" 224b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " DEBUG({\n" 225b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a;\n" 226b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;\n" 227b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }) ;\n" 228b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 229b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("DEBUG({\n" 230b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " DEBUG({\n" 231b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a;\n" 232b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;\n" // Format this line only. 233b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }) ;\n" // Don't touch this line. 234b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 235b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 35, 0)); 236b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("DEBUG({\n" 237b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a; //\n" 238b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 239b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("DEBUG({\n" 240b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int a; //\n" 241b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 242b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 243b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("someFunction(\n" 244b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " [] {\n" 245b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // Only with this comment.\n" 246b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i; // invoke formatting here.\n" 247b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }, // force line break\n" 248b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " aaa);", 249b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("someFunction(\n" 250b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " [] {\n" 251b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // Only with this comment.\n" 252b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i; // invoke formatting here.\n" 253b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }, // force line break\n" 254b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " aaa);", 255b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 63, 1)); 256b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 257b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int longlongname; // comment\n" 258b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int x = f({\n" 259b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int x; // comment\n" 260b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int y; // comment\n" 261b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 262b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int longlongname; // comment\n" 263b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int x = f({\n" 264b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int x; // comment\n" 265b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int y; // comment\n" 266b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 267b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 65, 0)); 268b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int s = f({\n" 269b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " class X {\n" 270b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " public:\n" 271b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " void f();\n" 272b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " };\n" 273b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 274b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int s = f({\n" 275b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " class X {\n" 276b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " public:\n" 277b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " void f();\n" 278b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " };\n" 279b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "});", 280b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 2814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar EXPECT_EQ("SomeFunction(\n" 2824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " [] {\n" 2834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " int i;\n" 2844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " return i;\n" // Format this line. 2854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " },\n" 2864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " [] {\n" 2874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " return 2;\n" // Don't fix this. 2884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " });", 2894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar format("SomeFunction(\n" 2904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " [] {\n" 2914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " int i;\n" 2924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " return i;\n" // Format this line. 2934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " },\n" 2944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " [] {\n" 2954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " return 2;\n" // Don't fix this. 2964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar " });", 2974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 40, 0)); 298b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 299b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 30087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga NainarTEST_F(FormatTestSelective, WrongIndent) { 30187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar EXPECT_EQ("namespace {\n" 30287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "int i;\n" 30387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "int j;\n" 30487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 30587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar format("namespace {\n" 30687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int i;\n" // Format here. 30787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int j;\n" 30887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 30987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 15, 0)); 31087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar EXPECT_EQ("namespace {\n" 31187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int i;\n" 31287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int j;\n" 31387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 31487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar format("namespace {\n" 31587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int i;\n" 31687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " int j;\n" // Format here. 31787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 31887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 24, 0)); 31987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 32087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 321b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, AlwaysFormatsEntireMacroDefinitions) { 322b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.AlignEscapedNewlinesLeft = true; 323b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int i;\n" 324b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A \\\n" 325b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i; \\\n" 326b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j\n" 327b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int k;", 328b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int i;\n" 329b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A \\\n" 330b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i ; \\\n" 331b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j\n" 332b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int k;", 333b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 8, 0)); // 8: position of "#define". 334b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int i;\n" 335b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A \\\n" 336b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i; \\\n" 337b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j\n" 338b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int k;", 339b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int i;\n" 340b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A \\\n" 341b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i ; \\\n" 342b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j\n" 343b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int k;", 344b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 45, 0)); // 45: position of "j". 345b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 346b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 347b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, ReformatRegionAdjustsIndent) { 348b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("{\n" 349b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 350b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "a;\n" 351b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "b;\n" 352b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 353b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 354b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("{\n" 355b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 356b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "a;\n" 357b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " b;\n" 358b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 359b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 360b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 13, 2)); 361b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("{\n" 362b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 363b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " a;\n" 36487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " b;\n" 36587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " c;\n" 36687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " d;\n" 367b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 368b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 369b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("{\n" 370b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 371b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " a;\n" 37287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " b;\n" 37387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " c;\n" 37487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " d;\n" 375b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 376b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 377b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 9, 2)); 378b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("{\n" 379b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 380b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "public:\n" 381b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " b;\n" 382b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 383b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 384b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("{\n" 385b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 386b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "public:\n" 387b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " b;\n" 388b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 389b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 390b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 17, 2)); 391b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("{\n" 392b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 393b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "a;\n" 394b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 395b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 396b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " b; //\n" 397b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 398b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 399b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("{\n" 400b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 401b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "a;\n" 402b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 403b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "{\n" 404b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " b; //\n" 405b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}\n" 406b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 407b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 22, 2)); 408b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ(" {\n" 409b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " a; //\n" 410b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 411b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format(" {\n" 412b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "a; //\n" 413b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 414b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 4, 2)); 415b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("void f() {}\n" 416b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "void g() {}", 417b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("void f() {}\n" 418b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "void g() {}", 419b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 13, 0)); 420b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("int a; // comment\n" 421b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // line 2\n" 422b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "int b;", 423b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("int a; // comment\n" 424b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " // line 2\n" 425b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int b;", 426b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 35, 0)); 427b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 428b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ(" void f() {\n" 429b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A 1\n" 430b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 431b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format(" void f() {\n" 432b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " #define A 1\n" // Format this line. 433b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 434b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 20, 0)); 435b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ(" void f() {\n" 436b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 437b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A \\\n" 438b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i; \\\n" 439b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 440b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int k;\n" 441b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 442b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format(" void f() {\n" 443b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i;\n" 444b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "#define A \\\n" 445b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int i; \\\n" 446b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int j;\n" 447b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " int k;\n" // Format this line. 448b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 449b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 67, 0)); 450b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 451b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.ColumnLimit = 11; 452b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ(" int a;\n" 453b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " void\n" 454b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " ffffff() {\n" 455b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " }", 456b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format(" int a;\n" 457b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "void ffffff() {}", 458b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 11, 0)); 459b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 460b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 461b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga NainarTEST_F(FormatTestSelective, UnderstandsTabs) { 462b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.IndentWidth = 8; 463b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.UseTab = FormatStyle::UT_Always; 464b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar Style.AlignEscapedNewlinesLeft = true; 465b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("void f() {\n" 466b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tf();\n" 467b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tg();\n" 468b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 469b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("void f() {\n" 470b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tf();\n" 471b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tg();\n" 472b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 473b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 0, 0)); 474b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("void f() {\n" 475b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tf();\n" 476b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tg();\n" 477b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 478b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("void f() {\n" 479b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tf();\n" 480b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tg();\n" 481b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 482b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 16, 0)); 483b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar EXPECT_EQ("void f() {\n" 484b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " \tf();\n" 485b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "\tg();\n" 486b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 487b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar format("void f() {\n" 488b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " \tf();\n" 489b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar " \tg();\n" 490b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar "}", 491b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 21, 0)); 492b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} 493b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar 49487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga NainarTEST_F(FormatTestSelective, StopFormattingWhenLeavingScope) { 49587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar EXPECT_EQ( 49687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "void f() {\n" 49787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " if (a) {\n" 49887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " g();\n" 49987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " h();\n" 50087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}\n" 50187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "\n" 50287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "void g() {\n" 50387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 50487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar format("void f() {\n" 50587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " if (a) {\n" // Assume this was added without the closing brace. 50687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " g();\n" 50787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar " h();\n" 50887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}\n" 50987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "\n" 51087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "void g() {\n" // Make sure not to format this. 51187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar "}", 51287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 15, 0)); 51387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 51487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 5154967a710c84587c654b56c828382219c3937dacbPirama Arumuga NainarTEST_F(FormatTestSelective, SelectivelyRequoteJavaScript) { 5164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar Style = getGoogleStyle(FormatStyle::LK_JavaScript); 5174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar EXPECT_EQ( 5184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "var x = \"a\";\n" 5194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "var x = 'a';\n" 5204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "var x = \"a\";", 5214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar format("var x = \"a\";\n" 5224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "var x = \"a\";\n" 5234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar "var x = \"a\";", 5244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 20, 0)); 5254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 5264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 527b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} // end namespace 528b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} // end namespace format 529b6d6993e6e6d3daf4d9876794254d20a134e37c2Pirama Arumuga Nainar} // end namespace clang 530