summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/cpp11-migrate/ReformattingTest.cpp
blob: a5caa0a3d77243eb507a187ab3a27461af9295ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//===- cpp11-migrate/ReformattingTest.cpp - Reformatting unit tests -------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include "Core/Reformatting.h"
#include "Core/FileOverrides.h"
#include "gtest/gtest.h"
#include "VirtualFileHelper.h"

using namespace clang;
using namespace clang::tooling;

namespace {
// convenience function to create a ChangedRanges containing one Range
ChangedRanges makeChangedRanges(unsigned Offset, unsigned Length) {
  ChangedRanges Changes;
  Replacements Replaces;

  Replaces.insert(Replacement("", Offset, 0, std::string(Length, '~')));
  Changes.adjustChangedRanges(Replaces);
  return Changes;
}
} // end anonymous namespace

TEST(Reformatter, SingleReformat) {
  VirtualFileHelper VFHelper;
  llvm::StringRef FileName = "<test>";
  VFHelper.mapFile(FileName, "int  a;\n"
                             "int  b;\n");

  Reformatter ChangesReformatter(format::getLLVMStyle());
  ChangedRanges Changes = makeChangedRanges(0, 6);
  tooling::Replacements Replaces = ChangesReformatter.reformatSingleFile(
      FileName, Changes, VFHelper.getNewSourceManager());

  SourceOverrides Overrides(FileName, /*TrackChanges=*/false);
  Overrides.applyReplacements(Replaces, VFHelper.getNewSourceManager(),
                              "reformatter");

  std::string Expected, Result;

  Expected = "int a;\n"
             "int  b;\n";
  Result = Overrides.getMainFileContent();
  EXPECT_EQ(Expected, Result);
}
OpenPOWER on IntegriCloud