forked from OSchip/llvm-project
54 lines
1.7 KiB
C++
54 lines
1.7 KiB
C++
//===- clang-apply-replacements/ApplyReplacementsTest.cpp
|
|
//----------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "clang-apply-replacements/Tooling/ApplyReplacements.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace clang::replace;
|
|
using namespace llvm;
|
|
|
|
namespace clang {
|
|
namespace tooling {
|
|
|
|
static TUDiagnostics
|
|
makeTUDiagnostics(const std::string &MainSourceFile, StringRef DiagnosticName,
|
|
const DiagnosticMessage &Message,
|
|
const StringMap<Replacements> &Replacements,
|
|
StringRef BuildDirectory) {
|
|
TUDiagnostics TUs;
|
|
TUs.push_back({MainSourceFile,
|
|
{{DiagnosticName,
|
|
Message,
|
|
Replacements,
|
|
{},
|
|
Diagnostic::Warning,
|
|
BuildDirectory}}});
|
|
return TUs;
|
|
}
|
|
|
|
// Test to ensure diagnostics with no fixes, will be merged correctly
|
|
// before applying.
|
|
TEST(ApplyReplacementsTest, mergeDiagnosticsWithNoFixes) {
|
|
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
|
|
DiagnosticsEngine Diagnostics(
|
|
IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), DiagOpts.get());
|
|
FileManager Files((FileSystemOptions()));
|
|
SourceManager SM(Diagnostics, Files);
|
|
TUDiagnostics TUs =
|
|
makeTUDiagnostics("path/to/source.cpp", "diagnostic", {}, {}, "path/to");
|
|
FileToReplacementsMap ReplacementsMap;
|
|
|
|
EXPECT_TRUE(mergeAndDeduplicate(TUs, ReplacementsMap, SM));
|
|
EXPECT_TRUE(ReplacementsMap.empty());
|
|
}
|
|
|
|
} // end namespace tooling
|
|
} // end namespace clang
|