mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-24 22:08:57 -04:00

While C(++) and ObjC are generally formatted the same way and can be mixed, people might want to choose different styles based on the language. This patch recognizes .m and .mm files as ObjC and also implements a very crude detection of whether or not a .h file contains ObjC code. This can be improved over time. Also move most of the ObjC tests into their own test file to keep file size maintainable. llvm-svn: 289428
57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
//===- unittest/Tooling/ReplacementTest.h - Replacements related test------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines utility class and function for Replacement related tests.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CLANG_UNITTESTS_TOOLING_REPLACEMENTTESTBASE_H
|
|
#define LLVM_CLANG_UNITTESTS_TOOLING_REPLACEMENTTESTBASE_H
|
|
|
|
#include "RewriterTestContext.h"
|
|
#include "clang/Tooling/Core/Replacement.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
namespace clang {
|
|
namespace tooling {
|
|
|
|
/// \brief Converts a set of replacements to Replacements class.
|
|
/// \return A Replacements class containing \p Replaces on success; otherwise,
|
|
/// an empty Replacements is returned.
|
|
inline tooling::Replacements
|
|
toReplacements(const std::set<tooling::Replacement> &Replaces) {
|
|
tooling::Replacements Result;
|
|
for (const auto &R : Replaces) {
|
|
auto Err = Result.add(R);
|
|
EXPECT_TRUE(!Err);
|
|
if (Err) {
|
|
llvm::errs() << llvm::toString(std::move(Err)) << "\n";
|
|
return tooling::Replacements();
|
|
}
|
|
}
|
|
return Result;
|
|
}
|
|
|
|
/// \brief A utility class for replacement related tests.
|
|
class ReplacementTest : public ::testing::Test {
|
|
protected:
|
|
tooling::Replacement createReplacement(SourceLocation Start, unsigned Length,
|
|
llvm::StringRef ReplacementText) {
|
|
return tooling::Replacement(Context.Sources, Start, Length,
|
|
ReplacementText);
|
|
}
|
|
|
|
RewriterTestContext Context;
|
|
};
|
|
|
|
} // namespace tooling
|
|
} // namespace clang
|
|
|
|
#endif // LLVM_CLANG_UNITTESTS_TOOLING_REPLACEMENTTESTBASE_H
|