From a803c0340a54a97ed4b20cdd968f09b2b376b484 Mon Sep 17 00:00:00 2001 From: Alexander Polcyn Date: Tue, 6 Mar 2018 16:16:57 -0800 Subject: Remove source code and the grpc_c.so file that was built as a local binary from the ruby binary packages --- test/distrib/ruby/run_distrib_test.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'test/distrib') diff --git a/test/distrib/ruby/run_distrib_test.sh b/test/distrib/ruby/run_distrib_test.sh index 99fb873589..cb2eb1ff7d 100755 --- a/test/distrib/ruby/run_distrib_test.sh +++ b/test/distrib/ruby/run_distrib_test.sh @@ -35,3 +35,24 @@ gem generate_index --directory "${GEM_SOURCE}" bundle install bundle exec ./distribtest.rb + +# Attempt to repro https://github.com/google/protobuf/issues/4210. +# TODO: This sanity check only works for linux-based distrib tests and for +# binary gRPC packages. It will need to be ran conditionally if this test script is +# used for other types of distrib tests. +INSTALLATION_DIR="$(gem env | grep '\- INSTALLATION DIRECTORY' | awk '{ print $4 }')" +if [[ "$(find "$INSTALLATION_DIR" -name 'grpc_c.so' | wc -l)" == 0 ]]; then + echo "Sanity check failed. The gRPC package is not installed in $INSTALLATION_DIR." + exit 1 +fi +LIBRUBY_DEPENDENCY_EXISTS="$(find "$INSTALLATION_DIR" -name 'grpc_c.so' -exec ldd {} \; | grep -c 'libruby')" || true +if [[ "$LIBRUBY_DEPENDENCY_EXISTS" != 0 ]]; then + echo "A grpc_c.so file in this binary gRPC package is dynamically linked to libruby." +fi +DEPENDENCY_NOT_FOUND="$(find "$INSTALLATION_DIR" -name 'grpc_c.so' -exec ldd {} \; | grep -c 'not found')" || true +if [[ "$DEPENDENCY_NOT_FOUND" != 0 ]]; then + echo "A grpc_c.so file in this binary gRPC package has an non-portable dependency." +fi +if [ "$LIBRUBY_DEPENDENCY_EXISTS" != 0 ] || [ "$DEPENDENCY_NOT_FOUND" != 0 ]; then + exit 1 +fi -- cgit v1.2.3