Added include guard to mock headers (#31909)

* Added include guard to mock headers

* Fix test
pull/31918/head
Esun Kim 2 years ago committed by GitHub
parent 9e7c8bff55
commit 27bf7238f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 33
      src/compiler/cpp_generator.cc
  2. 9
      test/cpp/codegen/compiler_test_mock_golden

@ -2147,6 +2147,7 @@ std::string GetMockPrologue(grpc_generator::File* file,
std::map<std::string, std::string> vars;
vars["filename"] = file->filename();
vars["filename_identifier"] = FilenameIdentifier(file->filename());
vars["filename_base"] = file->filename_without_ext();
vars["message_header_ext"] = params.message_header_extension.empty()
? kCppGeneratorMessageHeaderExt
@ -2158,6 +2159,9 @@ std::string GetMockPrologue(grpc_generator::File* file,
"// If you make any local change, they will be lost.\n");
printer->Print(vars, "// source: $filename$\n\n");
printer->Print(vars, "#ifndef GRPC_MOCK_$filename_identifier$__INCLUDED\n");
printer->Print(vars, "#define GRPC_MOCK_$filename_identifier$__INCLUDED\n");
printer->Print(vars, "\n");
printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n");
printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n");
if (params.include_import_headers) {
@ -2350,20 +2354,27 @@ std::string GetMockServices(grpc_generator::File* file,
std::string GetMockEpilogue(grpc_generator::File* file,
const Parameters& /*params*/) {
std::string temp;
if (!file->package().empty()) {
std::vector<std::string> parts = file->package_parts();
std::string output;
{
// Scope the output stream so it closes and finalizes output to the string.
auto printer = file->CreatePrinter(&output);
std::map<std::string, std::string> vars;
vars["filename_identifier"] = FilenameIdentifier(file->filename());
for (auto part = parts.begin(); part != parts.end(); part++) {
temp.append("} // namespace ");
temp.append(*part);
temp.append("\n");
if (!file->package().empty()) {
std::vector<std::string> parts = file->package_parts();
for (auto part = parts.rbegin(); part != parts.rend(); part++) {
vars["part"] = *part;
printer->Print(vars, "} // namespace $part$\n");
}
printer->Print(vars, "\n");
}
temp.append("\n");
}
return temp;
printer->Print(vars, "\n");
printer->Print(vars,
"#endif // GRPC_MOCK_$filename_identifier$__INCLUDED\n");
}
return output;
}
} // namespace grpc_cpp_generator

@ -2,6 +2,9 @@
// If you make any local change, they will be lost.
// source: src/proto/grpc/testing/compiler_test.proto
#ifndef GRPC_MOCK_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED
#define GRPC_MOCK_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED
#include "src/proto/grpc/testing/compiler_test.pb.h"
#include "src/proto/grpc/testing/compiler_test.grpc.pb.h"
@ -34,6 +37,8 @@ class MockServiceBStub : public ServiceB::StubInterface {
MOCK_METHOD3(PrepareAsyncMethodB1Raw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq));
};
} // namespace grpc
} // namespace testing
} // namespace testing
} // namespace grpc
#endif // GRPC_MOCK_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED

Loading…
Cancel
Save