11#include "gmock/gmock.h"
12#include "gtest/gtest.h"
21TEST(Modules, TextualIncludeInPreamble) {
27 TU.ExtraArgs.push_back("-fmodule-name=M");
28 TU.ExtraArgs.push_back(
"-fmodule-map-file=" +
testPath(
"m.modulemap"));
29 TU.AdditionalFiles[
"Textual.h"] =
"void foo();";
30 TU.AdditionalFiles[
"m.modulemap"] = R
"modulemap(
33 textual header "Textual.h"
43TEST(Modules, PreambleBuildVisibility) {
49 TU.OverlayRealFileSystemForModules = true;
50 TU.ExtraArgs.push_back(
"-fmodules");
51 TU.ExtraArgs.push_back(
"-fmodules-strict-decluse");
52 TU.ExtraArgs.push_back(
"-Xclang");
53 TU.ExtraArgs.push_back(
"-fmodules-local-submodule-visibility");
54 TU.ExtraArgs.push_back(
"-fmodule-map-file=" +
testPath(
"m.modulemap"));
55 TU.AdditionalFiles[
"module.h"] = R
"cpp(
58 TU.AdditionalFiles["m.modulemap"] = R
"modulemap(
63 EXPECT_TRUE(TU.build().getDiagnostics()->empty());
66TEST(Modules, Diagnostic) {
75 TU.OverlayRealFileSystemForModules = true;
76 TU.ExtraArgs.push_back(
"-fmodule-map-file=" +
testPath(
"m.modulemap"));
77 TU.ExtraArgs.push_back(
"-fmodules");
78 TU.ExtraArgs.push_back(
"-fimplicit-modules");
79 TU.ExtraArgs.push_back(
"-fmodules-strict-decluse");
80 TU.AdditionalFiles[
"modular.h"] = R
"cpp(
81 #include "non-modular.h"
83 TU.AdditionalFiles["non-modular.h"] =
"";
84 TU.AdditionalFiles[
"m.modulemap"] = R
"modulemap(
95TEST(Modules, UnknownFormat) {
97 TU.OverlayRealFileSystemForModules = true;
98 TU.ExtraArgs.push_back(
"-Xclang");
99 TU.ExtraArgs.push_back(
"-fmodule-format=obj");
100 TU.ExtraArgs.push_back(
"-fmodule-map-file=" +
testPath(
"m.modulemap"));
101 TU.ExtraArgs.push_back(
"-fmodules");
102 TU.ExtraArgs.push_back(
"-fimplicit-modules");
103 TU.AdditionalFiles[
"modular.h"] =
"";
104 TU.AdditionalFiles[
"m.modulemap"] = R
"modulemap(
std::string testPath(PathRef File, llvm::sys::path::Style Style)
TEST(BackgroundQueueTest, Priority)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
static TestTU withCode(llvm::StringRef Code)