aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/codegen
diff options
context:
space:
mode:
authorGravatar Mahak Mukhi <mmukhi@google.com>2017-04-14 15:33:55 -0700
committerGravatar Mahak Mukhi <mmukhi@google.com>2017-04-14 15:33:55 -0700
commit443a75dd2282ff442fcd217f1b254ebe8a0f4355 (patch)
treecba9a44753dadf8ffbbbab0f2c36529f5eb6004f /test/cpp/codegen
parentb32e89eb8b3bd1a7b11ff50d0d7c57f92bb91c57 (diff)
1. Added golden file test.
2. Added support for mock. 3. Sanity fix.
Diffstat (limited to 'test/cpp/codegen')
-rw-r--r--test/cpp/codegen/BUILD2
-rw-r--r--test/cpp/codegen/compiler_test_mock_golden49
-rw-r--r--test/cpp/codegen/golden_file_test.cc29
3 files changed, 72 insertions, 8 deletions
diff --git a/test/cpp/codegen/BUILD b/test/cpp/codegen/BUILD
index 14d5733da2..43d133fc34 100644
--- a/test/cpp/codegen/BUILD
+++ b/test/cpp/codegen/BUILD
@@ -62,7 +62,7 @@ cc_test(
cc_test(
name = "golden_file_test",
srcs = ["golden_file_test.cc"],
- args = ["--generated_file_path=$(GENDIR)/src/proto/grpc/testing/compiler_test.grpc.pb.h"],
+ args = ["--generated_file_path=$(GENDIR)/src/proto/grpc/testing/"],
data = [
":compiler_test_golden",
"//src/proto/grpc/testing:_compiler_test_proto_grpc_codegen",
diff --git a/test/cpp/codegen/compiler_test_mock_golden b/test/cpp/codegen/compiler_test_mock_golden
new file mode 100644
index 0000000000..ced61aeb94
--- /dev/null
+++ b/test/cpp/codegen/compiler_test_mock_golden
@@ -0,0 +1,49 @@
+// Generated by the gRPC C++ plugin.
+// If you make any local change, they will be lost.
+// source: src/proto/grpc/testing/compiler_test.proto
+
+#include "src/proto/grpc/testing/compiler_test.pb.h"
+#include "src/proto/grpc/testing/compiler_test.grpc.pb.h"
+
+#include <grpc++/impl/codegen/async_stream.h>
+#include <grpc++/impl/codegen/sync_stream.h>
+#include <gmock/gmock.h>
+namespace grpc {
+namespace testing {
+
+// ServiceA detached comment 1
+//
+// ServiceA detached comment 2
+//
+// ServiceA leading comment 1
+class MockServiceAStub : public ServiceA::StubInterface {
+ public:
+ MockServiceAStub(){}
+ ~MockServiceAStub(){}
+ // MethodA1 leading comment 1
+ MOCK_METHOD3(MethodA1, ::grpc::Status(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response));
+ MOCK_METHOD3(AsyncMethodA1Raw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq));
+ // MethodA1 trailing comment 1
+ // MethodA2 detached leading comment 1
+ //
+ // Method A2 leading comment 1
+ // Method A2 leading comment 2
+ MOCK_METHOD2(MethodA2Raw, ::grpc::ClientWriterInterface< ::grpc::testing::Request>*(::grpc::ClientContext* context, ::grpc::testing::Response* response));
+ MOCK_METHOD4(AsyncMethodA2Raw, ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>*(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag));
+ // MethodA2 trailing comment 1
+};
+
+// ServiceB leading comment 1
+class MockServiceBStub : public ServiceB::StubInterface {
+ public:
+ MockServiceBStub(){}
+ ~MockServiceBStub(){}
+ // MethodB1 leading comment 1
+ MOCK_METHOD3(MethodB1, ::grpc::Status(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response));
+ MOCK_METHOD3(AsyncMethodB1Raw, ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>*(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq));
+ // MethodB1 trailing comment 1
+};
+
+} // namespace grpc
+} // namespace testing
+
diff --git a/test/cpp/codegen/golden_file_test.cc b/test/cpp/codegen/golden_file_test.cc
index 158a4d933c..dd09471fdb 100644
--- a/test/cpp/codegen/golden_file_test.cc
+++ b/test/cpp/codegen/golden_file_test.cc
@@ -37,16 +37,18 @@
#include <gflags/gflags.h>
#include <gtest/gtest.h>
-DEFINE_string(generated_file_path, "",
- "path to the generated compiler_test.grpc.pb.h file");
+DEFINE_string(
+ generated_file_path, "",
+ "path to the directory containing generated files compiler_test.grpc.pb.h"
+ "and compiler_test_mock.grpc.pb.h");
const char kGoldenFilePath[] = "test/cpp/codegen/compiler_test_golden";
+const char kMockGoldenFilePath[] = "test/cpp/codegen/compiler_test_mock_golden";
-TEST(GoldenFileTest, TestGeneratedFile) {
- ASSERT_FALSE(FLAGS_generated_file_path.empty());
-
- std::ifstream generated(FLAGS_generated_file_path);
- std::ifstream golden(kGoldenFilePath);
+void run_test(std::basic_string<char> generated_file,
+ std::basic_string<char> golden_file) {
+ std::ifstream generated(generated_file);
+ std::ifstream golden(golden_file);
ASSERT_TRUE(generated.good());
ASSERT_TRUE(golden.good());
@@ -61,8 +63,21 @@ TEST(GoldenFileTest, TestGeneratedFile) {
golden.close();
}
+TEST(GoldenFileTest, TestGeneratedFile) {
+ run_test(FLAGS_generated_file_path + "compiler_test.grpc.pb.h",
+ kGoldenFilePath);
+}
+
+TEST(GoldenMockFileTest, TestGeneratedMockFile) {
+ run_test(FLAGS_generated_file_path + "compiler_test_mock.grpc.pb.h",
+ kMockGoldenFilePath);
+}
+
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
::google::ParseCommandLineFlags(&argc, &argv, true);
+ if (FLAGS_generated_file_path.empty()) return 1;
+ if (FLAGS_generated_file_path.back() != '/')
+ FLAGS_generated_file_path.append("/");
return RUN_ALL_TESTS();
}