aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/distrib
diff options
context:
space:
mode:
authorGravatar apolcyn <apolcyn@google.com>2018-03-27 16:35:25 -0700
committerGravatar GitHub <noreply@github.com>2018-03-27 16:35:25 -0700
commitd9ec9068c7e7b38379229ea10b6b55d43e8dc549 (patch)
treecb29c3276b3b96b7beb5ff6a7670e0dad2d47467 /test/distrib
parentc2a89cbdab0a3988f1935032681278a6d213edce (diff)
parenta803c0340a54a97ed4b20cdd968f09b2b376b484 (diff)
Merge pull request #14634 from apolcyn/fix_ruby_omnibus_breakge
Remove source code and native-to-build-host grpc_c.so from ruby linux binary packages
Diffstat (limited to 'test/distrib')
-rwxr-xr-xtest/distrib/ruby/run_distrib_test.sh21
1 files changed, 21 insertions, 0 deletions
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