diff options
author | David Garcia Quintas <dgq@google.com> | 2016-01-11 15:51:03 -0800 |
---|---|---|
committer | David Garcia Quintas <dgq@google.com> | 2016-01-11 15:51:03 -0800 |
commit | 82a0aabb7a6a4f0852bb02cef3a5f079d386fbac (patch) | |
tree | 99bbc0289576daa00a3c39f7af2419d162aad08b /tools/distrib | |
parent | 82a0bdc31427936d3e52c4fe54577b00c4a16bca (diff) |
added sanity scripts and checks
Diffstat (limited to 'tools/distrib')
-rwxr-xr-x | tools/distrib/check_nanopb_output.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/distrib/check_nanopb_output.sh b/tools/distrib/check_nanopb_output.sh new file mode 100755 index 0000000000..d1d829d09d --- /dev/null +++ b/tools/distrib/check_nanopb_output.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# Copyright 2015-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. + +set -ex + +readonly NANOPB_TMP_OUTPUT=$(mktemp -d) +readonly VENV_DIR=$(mktemp -d) +# create a virtualenv for nanopb's compiler +pushd $VENV_DIR +readonly VENV_NAME="nanopb-$(date '+%Y%m%d_%H%M%S_%N')" +virtualenv $VENV_NAME +. $VENV_NAME/bin/activate +popd + +# install proto3 +pip install protobuf==3.0.0b2 + +# change to root directory +cd $(dirname $0)/../.. + +# stack up and change to nanopb's proto generator directory +pushd third_party/nanopb/generator/proto +make + +# back to the root directory +popd + +# nanopb-compile the proto to a temp location +./tools/codegen/core/gen_load_balancing_proto.sh \ + src/proto/grpc/lb/v0/load_balancer.proto \ + $NANOPB_TMP_OUTPUT + +# compare outputs to checked compiled code +diff -rq $NANOPB_TMP_OUTPUT src/core/proto/grpc/lb/v0 +if [ $? != 0 ]; then + echo "Outputs differ: $NANOPB_TMP_OUTPUT vs src/core/proto/grpc/lb/v0" + exit 1 +fi +deactivate |