#!/bin/bash # Copyright 2015, 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 cd $(dirname $0) # Pick up the source dist archive whatever its version is SDIST_ARCHIVES=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio-*.tar.gz BDIST_ARCHIVES=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio-*.whl TOOLS_SDIST_ARCHIVES=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio_tools-*.tar.gz TOOLS_BDIST_ARCHIVES=$EXTERNAL_GIT_ROOT/input_artifacts/grpcio_tools-*.whl function make_virtualenv() { virtualenv $1 $1/bin/python -m pip install --upgrade six pip $1/bin/python -m pip install cython } function at_least_one_installs() { for file in "$@"; do if python -m pip install $file; then return 0 fi done return -1 } make_virtualenv bdist_test make_virtualenv sdist_test # # Install our distributions in order of dependencies # (source bdist_test/bin/activate && at_least_one_installs ${BDIST_ARCHIVES}) (source bdist_test/bin/activate && at_least_one_installs ${TOOLS_BDIST_ARCHIVES}) (source sdist_test/bin/activate && at_least_one_installs ${SDIST_ARCHIVES}) (source sdist_test/bin/activate && at_least_one_installs ${TOOLS_SDIST_ARCHIVES}) # # Test our distributions # # TODO(jtattermusch): add a .proto file to the distribtest, generate python # code from it and then use the generated code from distribtest.py (source bdist_test/bin/activate && python -m grpc.tools.protoc --help) (source sdist_test/bin/activate && python -m grpc.tools.protoc --help) (source bdist_test/bin/activate && python distribtest.py) (source sdist_test/bin/activate && python distribtest.py)