diff options
author | David Garcia Quintas <dgq@google.com> | 2016-04-08 17:20:10 -0700 |
---|---|---|
committer | David Garcia Quintas <dgq@google.com> | 2016-04-08 17:20:10 -0700 |
commit | 001193c7522479169d768eed76da33d3050d0f1b (patch) | |
tree | 2f73dc318d49aa0af90ba4cbfc8dcbb59de9effb /src/ruby | |
parent | 9885bff5fb817031a9f8b73d0960f7ae5e3c3c2a (diff) | |
parent | 9ea60274efac6e4108118260015ab6070f59f66d (diff) |
Merge branch 'master' of github.com:grpc/grpc into ip_parse_refactor
Diffstat (limited to 'src/ruby')
-rw-r--r-- | src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb | 28 | ||||
-rw-r--r-- | src/ruby/spec/pb/duplicate/codegen_spec.rb | 71 |
2 files changed, 99 insertions, 0 deletions
diff --git a/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb b/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb new file mode 100644 index 0000000000..9f6e7e0e42 --- /dev/null +++ b/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb @@ -0,0 +1,28 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: src/proto/grpc/testing/duplicate/echo_duplicate.proto for package 'grpc.testing.duplicate' + +require 'grpc' +require 'src/proto/grpc/testing/duplicate/echo_duplicate' + +module Grpc + module Testing + module Duplicate + module EchoTestService + + # TODO: add proto service documentation here + class Service + + include GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'grpc.testing.duplicate.EchoTestService' + + rpc :Echo, Grpc::Testing::EchoRequest, Grpc::Testing::EchoResponse + end + + Stub = Service.rpc_stub_class + end + end + end +end diff --git a/src/ruby/spec/pb/duplicate/codegen_spec.rb b/src/ruby/spec/pb/duplicate/codegen_spec.rb new file mode 100644 index 0000000000..54c136c510 --- /dev/null +++ b/src/ruby/spec/pb/duplicate/codegen_spec.rb @@ -0,0 +1,71 @@ +# Copyright 2016, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +require 'open3' +require 'tmpdir' + +def can_run_codegen_check + system('which grpc_ruby_plugin') && system('which protoc') +end + +describe 'Ping protobuf code generation' do + if !can_run_codegen_check + skip 'protoc || grpc_ruby_plugin missing, cannot verify ping code-gen' + else + it 'should have the same content as created by code generation' do + root_dir = File.join(File.dirname(__FILE__), '..', '..', '..', '..', '..') + + # Get the current content + service_path = File.join(root_dir, 'src', 'ruby', 'pb', 'grpc', + 'testing', 'duplicate', + 'echo_duplicate_services.rb') + want = nil + File.open(service_path) { |f| want = f.read } + + # Regenerate it + plugin, = Open3.capture2('which', 'grpc_ruby_plugin') + plugin = plugin.strip + got = nil + Dir.mktmpdir do |tmp_dir| + gen_out = File.join(tmp_dir, 'src', 'proto', 'grpc', 'testing', + 'duplicate', 'echo_duplicate_services.rb') + pid = spawn( + 'protoc', + '-I.', + 'src/proto/grpc/testing/duplicate/echo_duplicate.proto', + "--grpc_out=#{tmp_dir}", + "--plugin=protoc-gen-grpc=#{plugin}", + chdir: root_dir) + Process.wait(pid) + File.open(gen_out) { |f| got = f.read } + end + expect(got).to eq(want) + end + end +end |