12 #include "llvm/ADT/StringExtras.h" 14 #include "gmock/gmock.h" 15 #include "gtest/gtest.h" 21 using ::testing::Contains;
22 using ::testing::ElementsAre;
23 using ::testing::HasSubstr;
32 TEST(CommandMangler, Everything) {
34 Mangler.ClangPath =
testPath(
"fake/clang");
35 Mangler.ResourceDir =
testPath(
"fake/resources");
36 Mangler.Sysroot =
testPath(
"fake/sysroot");
37 std::vector<std::string> Cmd = {
"clang++",
"-Xclang",
"-load",
"-Xclang",
38 "plugin",
"-MF",
"dep",
"foo.cc"};
40 EXPECT_THAT(Cmd, ElementsAre(
testPath(
"fake/clang++"),
"foo.cc",
42 "-resource-dir=" +
testPath(
"fake/resources"),
43 "-isysroot",
testPath(
"fake/sysroot")));
46 TEST(CommandMangler, ResourceDir) {
48 Mangler.ResourceDir =
testPath(
"fake/resources");
49 std::vector<std::string> Cmd = {
"clang++",
"foo.cc"};
51 EXPECT_THAT(Cmd, Contains(
"-resource-dir=" +
testPath(
"fake/resources")));
54 TEST(CommandMangler, Sysroot) {
56 Mangler.Sysroot =
testPath(
"fake/sysroot");
58 std::vector<std::string> Cmd = {
"clang++",
"foo.cc"};
61 HasSubstr(
"-isysroot " +
testPath(
"fake/sysroot")));
64 TEST(CommandMangler, StripPlugins) {
66 std::vector<std::string> Cmd = {
"clang++",
"-Xclang",
"-load",
67 "-Xclang",
"plugin",
"foo.cc"};
69 for (
const char* Stripped : {
"-Xclang",
"-load",
"plugin"})
70 EXPECT_THAT(Cmd, Not(Contains(Stripped)));
73 TEST(CommandMangler, StripOutput) {
75 std::vector<std::string> Cmd = {
"clang++",
"-MF",
"dependency",
"-c",
78 for (
const char* Stripped : {
"-MF",
"dependency"})
79 EXPECT_THAT(Cmd, Not(Contains(Stripped)));
82 TEST(CommandMangler, ClangPath) {
84 Mangler.ClangPath =
testPath(
"fake/clang");
86 std::vector<std::string> Cmd = {
"clang++",
"foo.cc"};
88 EXPECT_EQ(
testPath(
"fake/clang++"), Cmd.front());
90 Cmd = {
"unknown-binary",
"foo.cc"};
92 EXPECT_EQ(
"unknown-binary", Cmd.front());
94 Cmd = {
testPath(
"path/clang++"),
"foo.cc"};
96 EXPECT_EQ(
testPath(
"path/clang++"), Cmd.front());
static CommandMangler forTests()
TEST(BackgroundQueueTest, Priority)
std::string testPath(PathRef File)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
static std::string join(ArrayRef< SpecialMemberFunctionsCheck::SpecialMemberFunctionKind > SMFS, llvm::StringRef AndOr)