1#!/bin/sh 2set -o errexit # Exit the script with error if any of the commands fail 3# AUTH_HOST=${auth_host} # Evergreen variable 4# AUTH_PLAIN=${auth_plain} # Evergreen variable 5# AUTH_MONGODBCR=${auth_mongodbcr} # Evergreen variable 6# AUTH_GSSAPI=${auth_gssapi} # Evergreen variable 7# AUTH_CROSSREALM=${auth_crossrealm} # Evergreen variable 8# AUTH_GSSAPI_UTF8=${auth_gssapi_utf8} # Evergreen variable 9# ATLAS_FREE=${atlas_free} # Evergreen variable 10# ATLAS_REPLSET=${atlas_replset} # Evergreen variable 11# ATLAS_SHARD=${atlas_shard} # Evergreen variable 12 13 14C_TIMEOUT="connectTimeoutMS=30000" 15 16 17OS=$(uname -s | tr '[:upper:]' '[:lower:]') 18if grep -q "#define MONGOC_ENABLE_SASL 1" src/mongoc/mongoc-config.h; then 19 SASL=1 20else 21 SASL=0 22fi 23if grep -q "#define MONGOC_ENABLE_SSL 1" src/mongoc/mongoc-config.h; then 24 SSL=1 25else 26 SSL=0 27fi 28 29case "$OS" in 30 cygwin*) 31 export PATH=$PATH:`pwd`/tests:`pwd`/Debug:`pwd`/src/libbson/Debug 32 chmod +x ./Debug/* src/libbson/Debug/* 33 PING="./Debug/mongoc-ping.exe" 34 ;; 35 36 darwin) 37 sed -i'.bak' 's/\/data\/mci\/[a-z0-9]\{32\}\/mongoc/./g' mongoc-ping 38 export DYLD_LIBRARY_PATH="install-dir/lib:.libs:src/libbson/.libs" 39 PING="./mongoc-ping" 40 ;; 41 42 *) 43 # This libtool wrapper script was built in a unique dir like 44 # "/data/mci/998e754a0d1ed79b8bf733f405b87778/mongoc", 45 # replace its absolute path with "." so it can run in the CWD. 46 sed -i'' 's/\/data\/mci\/[a-z0-9]\{32\}\/mongoc/./g' mongoc-ping 47 export LD_LIBRARY_PATH="install-dir/lib:.libs:src/libbson/.libs" 48 PING="./mongoc-ping" 49esac 50 51if test -f /tmp/drivers.keytab; then 52 kinit -k -t /tmp/drivers.keytab -p drivers@LDAPTEST.10GEN.CC || true 53fi 54 55# Archlinux (which we use for testing various self-installed OpenSSL versions) 56# Stores their trust list here. We need to copy it to our custom installed 57# OpenSSL trust store. 58# LibreSSL bundle their own trust store (in install-dir/etc/ssl/cert.pem) 59cp /etc/ca-certificates/extracted/tls-ca-bundle.pem install-dir/ssl/cert.pem || true 60# OpenSSL fips enabled path 61cp /etc/ca-certificates/extracted/tls-ca-bundle.pem install-dir/cert.pem || true 62 63export PATH=install-dir/bin:$PATH 64openssl version || true 65 66if [ $SSL -eq 1 ]; then 67 # FIXME: CDRIVER-2008 68 if [ "${OS%_*}" != "cygwin" ]; then 69 echo "Authenticating using X.509" 70 $PING "mongodb://CN=client,OU=kerneluser,O=10Gen,L=New York City,ST=New York,C=US@${AUTH_HOST}/?ssl=true&authMechanism=MONGODB-X509&sslClientCertificateKeyFile=./tests/x509gen/legacy-x509.pem&sslCertificateAuthorityFile=tests/x509gen/legacy-ca.crt&sslAllowInvalidHostnames=true&${C_TIMEOUT}" 71 fi 72 echo "Connecting to Atlas Free Tier" 73 $PING "$ATLAS_FREE&${C_TIMEOUT}" 74 echo "Connecting to Atlas Replica Set" 75 $PING "$ATLAS_REPLSET&${C_TIMEOUT}" 76 echo "Connecting to Atlas Sharded Cluster" 77 $PING "$ATLAS_SHARD&${C_TIMEOUT}" 78fi 79 80echo "Authenticating using PLAIN" 81$PING "mongodb://${AUTH_PLAIN}@${AUTH_HOST}/?authMechanism=PLAIN&${C_TIMEOUT}" 82 83echo "Authenticating using MONGODB-CR" 84$PING "mongodb://${AUTH_MONGODBCR}@${AUTH_HOST}/mongodb-cr?authMechanism=MONGODB-CR&${C_TIMEOUT}" 85 86if [ $SASL -eq 1 ]; then 87echo "Authenticating using GSSAPI" 88 $PING "mongodb://${AUTH_GSSAPI}@${AUTH_HOST}/?authMechanism=GSSAPI&${C_TIMEOUT}" 89 if [ "${OS%_*}" = "cygwin" ]; then 90 echo "Authenticating using GSSAPI (service realm: LDAPTEST.10GEN.CC)" 91 $PING "mongodb://${AUTH_CROSSREALM}@${AUTH_HOST}/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_REALM:LDAPTEST.10GEN.CC&${C_TIMEOUT}" 92 echo "Authenticating using GSSAPI (UTF-8 credentials)" 93 $PING "mongodb://${AUTH_GSSAPI_UTF8}@${AUTH_HOST}/?authMechanism=GSSAPI&${C_TIMEOUT}" 94 fi 95fi 96 97