#!/bin/bash -e # Copyright 2024 gRPC authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Uncomment to enable debugging. # set -x WORKDIR="$(dirname $0)" TEMPDIR=$(mktemp -d) trap "rm -rf ${TEMPDIR}" EXIT # Build protoc-gen-go-grpc binary and add to $PATH. pushd "${WORKDIR}" go build -o "${TEMPDIR}" . PATH="${TEMPDIR}:${PATH}" popd protoc \ --go-grpc_out="${TEMPDIR}" \ --go-grpc_opt=paths=source_relative,use_generic_streams_experimental=true \ "examples/route_guide/routeguide/route_guide.proto" GOLDENFILE="examples/route_guide/routeguide/route_guide_grpc.pb.go" GENFILE="${TEMPDIR}/examples/route_guide/routeguide/route_guide_grpc.pb.go" # diff is piped to [[ $? == 1 ]] to avoid exiting on diff but exit on error # (like if the file was not found). See man diff for more info. DIFF=$(diff "${GOLDENFILE}" "${GENFILE}" || [[ $? == 1 ]]) if [[ -n "${DIFF}" ]]; then echo -e "ERROR: Generated file differs from golden file:\n${DIFF}" echo -e "If you have made recent changes to protoc-gen-go-grpc," \ "please regenerate the golden files by running:" \ "\n\t go generate google.golang.org/grpc/..." >&2 exit 1 fi echo SUCCESS