Skip to content

Commit 2f4abe5

Browse files
committed
Merge branch 'CDRIVER-1955-gssapi-tests-in-evergreen'
* CDRIVER-1955-gssapi-tests-in-evergreen: CDRIVER-2000 Disable the sasl test for now CDRIVER-2000 Skip Solaris and RHEL7.1 PPC64le CDRIVER-1955 Skip Windows CDRIVER-1955 Run GSSAPI tests in evergreen CDRIVER-2000 Implement user canonicalization
2 parents c9a9d36 + 7ea1f91 commit 2f4abe5

File tree

10 files changed

+286
-13
lines changed

10 files changed

+286
-13
lines changed

.evergreen/compile-unix.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ DEBUG_FLAGS="\
4747
--enable-html-docs=no \
4848
--enable-man-pages=no \
4949
--enable-yelp=no \
50-
--enable-examples=no \
5150
--enable-optimizations=no \
5251
--enable-extra-align=no \
5352
--enable-maintainer-flags \

.evergreen/config.yml

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,13 +277,36 @@ functions:
277277
working_dir: "mongoc"
278278
script: |
279279
sudo apt-get install -y awscli || true
280-
sudo /opt/csw/bin/pkgutil -y -i sasl_dev || true
280+
sudo /opt/csw/bin/pkgutil -y -i sasl_dev sasl_gssapi || true
281+
282+
"prepare kerberos" :
283+
- command: shell.exec
284+
params:
285+
silent: true
286+
working_dir: "mongoc"
287+
script: |
288+
if test -w /etc/hosts; then
289+
SUDO=""
290+
else
291+
SUDO="sudo"
292+
fi
293+
if command -v host 2>/dev/null; then
294+
echo "`host ldaptest.10gen.cc | awk '/has address/ { print $4 ; exit }'` ldaptest.10gen.cc" | $SUDO tee -a /etc/hosts
295+
else
296+
echo "`getent hosts ldaptest.10gen.cc | awk '{ print $1; exit }'` ldaptest.10gen.cc" | $SUDO tee -a /etc/hosts
297+
fi
298+
if test "${keytab|}"; then
299+
echo "${keytab}" > /tmp/drivers.keytab.base64
300+
base64 --decode /tmp/drivers.keytab.base64 > /tmp/drivers.keytab
301+
cat .evergreen/kerberos.realm | $SUDO tee -a /etc/krb5.conf
302+
fi
281303
282304
pre:
283305
- func: "fetch source"
284306
- func: "windows fix"
285307
- func: "make files executable"
286308
- func: "install dependencies"
309+
- func: "prepare kerberos"
287310

288311
post:
289312
- func: "upload working dir"
@@ -5966,6 +5989,25 @@ tasks:
59665989
BUILD_NAME: "debug-compile-sspi-winssl"
59675990
- func: "run auth tests"
59685991

5992+
- name: authentication-tests-sasl
5993+
tags: ["authentication-tests", "sasl"]
5994+
depends_on:
5995+
- name: "debug-compile-sasl-nossl"
5996+
commands:
5997+
- func: "fetch build"
5998+
vars:
5999+
BUILD_NAME: "debug-compile-sasl-nossl"
6000+
- func: "run auth tests"
6001+
6002+
- name: authentication-tests-nosasl
6003+
tags: ["authentication-tests", "nosasl"]
6004+
depends_on:
6005+
- name: "debug-compile-nosasl-nossl"
6006+
commands:
6007+
- func: "fetch build"
6008+
vars:
6009+
BUILD_NAME: "debug-compile-nosasl-nossl"
6010+
- func: "run auth tests"
59696011

59706012
# }}}
59716013

@@ -6000,6 +6042,7 @@ buildvariants:
60006042
- "debug-compile"
60016043
- ".debug-compile !.sspi .openssl"
60026044
- ".debug-compile !.sspi .nossl"
6045+
- ".authentication-tests"
60036046
- ".latest .openssl !.nosasl .server"
60046047
- ".latest .nossl !.nosasl"
60056048
- ".3.4 .openssl !.nosasl .server"
@@ -6023,6 +6066,7 @@ buildvariants:
60236066
- ".debug-compile .stdflags !.c89"
60246067
- ".debug-compile !.sspi .openssl"
60256068
- ".debug-compile !.sspi .nossl"
6069+
- ".authentication-tests"
60266070
- ".latest .openssl !.nosasl .server"
60276071
- ".latest .nossl !.nosasl"
60286072
- ".3.4 .openssl !.nosasl .server"
@@ -6042,6 +6086,7 @@ buildvariants:
60426086
- ".debug-compile .stdflags !.c89"
60436087
- ".debug-compile !.sspi .openssl"
60446088
- ".debug-compile !.sspi .nossl"
6089+
- ".authentication-tests"
60456090
- ".latest .nossl !.nosasl"
60466091
- ".3.4 .nossl !.nosasl"
60476092
- ".3.2 .nossl !.nosasl" # No enterprise build for Archlinux, SSL not available
@@ -6064,6 +6109,7 @@ buildvariants:
60646109
- "debug-compile"
60656110
- ".debug-compile .stdflags !.c89"
60666111
- ".debug-compile !.sspi .nossl .nosasl"
6112+
- ".authentication-tests !.sasl"
60676113
- ".latest .nossl .nosasl"
60686114
- ".3.4 .nossl .nosasl"
60696115
# We don't have i386 builds of OpenSSL or Cyrus SASL installed
@@ -6084,6 +6130,7 @@ buildvariants:
60846130
- ".debug-compile .stdflags !.c89"
60856131
- ".debug-compile !.sspi .openssl"
60866132
- ".debug-compile !.sspi .nossl"
6133+
- ".authentication-tests"
60876134
- ".latest .openssl !.nosasl .server"
60886135
- ".latest .nossl !.nosasl"
60896136
- ".3.4 .openssl !.nosasl .server"
@@ -6103,6 +6150,7 @@ buildvariants:
61036150
- "debug-compile"
61046151
- ".debug-compile !.sspi .openssl"
61056152
- ".debug-compile !.sspi .nossl"
6153+
- ".authentication-tests"
61066154
- ".latest .openssl !.nosasl .server"
61076155
- ".latest .nossl !.nosasl"
61086156
- ".3.4 .openssl !.nosasl .server"
@@ -6125,6 +6173,7 @@ buildvariants:
61256173
- "debug-compile"
61266174
- ".debug-compile !.sspi .openssl"
61276175
- ".debug-compile !.sspi .nossl"
6176+
- ".authentication-tests"
61286177
- ".latest .openssl !.nosasl .server"
61296178
- ".latest .nossl !.nosasl"
61306179
- ".latest .nossl !.nosasl !.ipv4-only"
@@ -6148,6 +6197,7 @@ buildvariants:
61486197
- "debug-compile"
61496198
- ".debug-compile !.sspi .openssl"
61506199
- ".debug-compile !.sspi .nossl"
6200+
- ".authentication-tests"
61516201
- ".latest .openssl !.nosasl .server"
61526202
- ".latest .nossl !.nosasl"
61536203
- ".3.4 .openssl !.nosasl .server"
@@ -6171,6 +6221,7 @@ buildvariants:
61716221
- "debug-compile"
61726222
- ".debug-compile !.sspi .openssl"
61736223
- ".debug-compile !.sspi .nossl"
6224+
- ".authentication-tests"
61746225
- ".latest .openssl !.nosasl .server"
61756226
- ".latest .nossl !.nosasl"
61766227
- ".3.4 .openssl !.nosasl .server"
@@ -6190,6 +6241,7 @@ buildvariants:
61906241
- "debug-compile-coverage"
61916242
- "release-compile"
61926243
- "debug-compile"
6244+
- ".authentication-tests !.sasl"
61936245
- ".debug-compile !.sspi .nossl .nosasl"
61946246
- ".latest .nossl .nosasl"
61956247
- ".3.4 .nossl .nosasl"
@@ -6210,6 +6262,7 @@ buildvariants:
62106262
- "debug-compile"
62116263
- ".debug-compile !.sspi .openssl"
62126264
- ".debug-compile !.sspi .nossl"
6265+
- ".authentication-tests"
62136266
- ".latest .openssl !.nosasl .server"
62146267
- ".latest .nossl !.nosasl"
62156268
- ".3.4 .openssl !.nosasl .server"
@@ -6230,6 +6283,8 @@ buildvariants:
62306283
- "release-compile"
62316284
- "debug-compile"
62326285
- ".debug-compile !.sspi .nossl"
6286+
- ".authentication-tests !.sasl"
6287+
#- ".authentication-tests" FIXME: Kerberos authentication doesn't seem to work
62336288
- ".latest .nossl" # No MongoDB SSL builds available for any version
62346289
- ".3.4 .nossl" # No MongoDB SSL builds available for any version
62356290
- ".3.2 .nossl !.nosasl"
@@ -6249,6 +6304,7 @@ buildvariants:
62496304
- "release-compile"
62506305
- "debug-compile"
62516306
- ".debug-compile !.sspi .nossl .nosasl"
6307+
- ".authentication-tests !.sasl"
62526308
- ".latest .nossl .nosasl"
62536309
- ".3.4 .nossl .nosasl"
62546310
# We don't have i386 builds of OpenSSL or Cyrus SASL installed
@@ -6268,6 +6324,7 @@ buildvariants:
62686324
- ".debug-compile !.sspi .openssl"
62696325
- ".debug-compile !.sspi .nossl"
62706326
- ".debug-compile .clang"
6327+
- ".authentication-tests"
62716328
- ".latest .darwinssl !.nosasl .server"
62726329
- ".latest .openssl !.nosasl .server"
62736330
- ".latest .nossl !.nosasl"
@@ -6294,6 +6351,7 @@ buildvariants:
62946351
- ".debug-compile !.sspi .openssl"
62956352
- ".debug-compile !.sspi .nossl"
62966353
- ".debug-compile .sspi"
6354+
- ".authentication-tests !.sasl" # GSSAPI isn't installed
62976355
- ".latest .winssl !.nosasl .server"
62986356
- ".latest .openssl !.nosasl .server"
62996357
- ".latest .nossl !.nosasl"
@@ -6321,6 +6379,7 @@ buildvariants:
63216379
- ".debug-compile .sspi !.openssl"
63226380
- ".debug-compile .winssl .nosasl"
63236381
- ".debug-compile !.sspi .nossl .nosasl"
6382+
- ".authentication-tests !.sasl"
63246383
- ".latest .winssl .nosasl .server"
63256384
- ".latest .nossl .nosasl"
63266385
- ".latest .sspi"
@@ -6346,6 +6405,7 @@ buildvariants:
63466405
- ".debug-compile !.sspi .openssl"
63476406
- ".debug-compile !.sspi .nossl"
63486407
- ".debug-compile .sspi"
6408+
- ".authentication-tests !.sasl" # GSSAPI isn't installed
63496409
- ".latest .winssl !.nosasl .server"
63506410
- ".latest .openssl !.nosasl .server"
63516411
- ".latest .nossl !.nosasl"
@@ -6372,6 +6432,7 @@ buildvariants:
63726432
- ".debug-compile .sspi !.openssl"
63736433
- ".debug-compile .winssl .nosasl"
63746434
- ".debug-compile !.sspi .nossl .nosasl"
6435+
- ".authentication-tests !.sasl"
63756436
- ".latest .winssl .nosasl .server"
63766437
- ".latest .nossl .nosasl"
63776438
- ".latest .sspi"
@@ -6397,6 +6458,7 @@ buildvariants:
63976458
- ".debug-compile !.sspi .openssl"
63986459
- ".debug-compile !.sspi .nossl"
63996460
- ".debug-compile .sspi"
6461+
- ".authentication-tests !.sasl" # GSSAPI isn't installed
64006462
- ".latest .winssl !.nosasl .server"
64016463
- ".latest .openssl !.nosasl .server"
64026464
- ".latest .nossl !.nosasl"
@@ -6425,6 +6487,7 @@ buildvariants:
64256487
- ".debug-compile .winssl .nosasl"
64266488
- ".debug-compile !.sspi .nossl .nosasl"
64276489
- ".debug-compile .nossl .sspi"
6490+
- ".authentication-tests !.sasl"
64286491
- ".latest .winssl .nosasl .server"
64296492
- ".latest .nossl .nosasl"
64306493
- ".latest .sspi"
@@ -6461,6 +6524,8 @@ buildvariants:
64616524
- "debug-compile"
64626525
- ".debug-compile !.sspi .openssl"
64636526
- ".debug-compile !.sspi .nossl"
6527+
- ".authentication-tests !.sasl"
6528+
#- ".authentication-tests" FIXME: Kerberos Authentication doesn't seem to work
64646529
- ".latest .openssl !.nosasl .server"
64656530
- ".latest .nossl !.nosasl"
64666531
- ".3.4 .openssl !.nosasl .server"
@@ -6485,6 +6550,7 @@ buildvariants:
64856550
- "debug-compile"
64866551
- ".debug-compile !.sspi .openssl"
64876552
- ".debug-compile !.sspi .nossl"
6553+
- ".authentication-tests"
64886554
- ".latest .openssl !.nosasl .server"
64896555
- ".latest .nossl !.nosasl"
64906556
- ".3.4 .openssl !.nosasl .server"
@@ -6507,6 +6573,7 @@ buildvariants:
65076573
- "debug-compile"
65086574
- ".debug-compile !.sspi .openssl"
65096575
- ".debug-compile !.sspi .nossl"
6576+
- ".authentication-tests"
65106577
- ".latest .openssl !.nosasl .server"
65116578
- ".latest .nossl !.nosasl"
65126579
- ".3.4 .openssl !.nosasl .server"
@@ -6527,6 +6594,7 @@ buildvariants:
65276594
- "debug-compile"
65286595
- ".debug-compile !.sspi .openssl"
65296596
- ".debug-compile !.sspi .nossl"
6597+
- ".authentication-tests"
65306598
- ".latest .openssl !.nosasl .server"
65316599
- ".latest .nossl !.nosasl"
65326600
- ".3.4 .openssl !.nosasl .server"
@@ -6548,6 +6616,7 @@ buildvariants:
65486616
- "debug-compile"
65496617
- ".debug-compile !.sspi .openssl"
65506618
- ".debug-compile !.sspi .nossl"
6619+
- ".authentication-tests"
65516620
- ".latest .openssl !.nosasl .server"
65526621
- ".latest .nossl !.nosasl"
65536622
- ".3.4 .openssl !.nosasl .server"
@@ -6568,6 +6637,7 @@ buildvariants:
65686637
- "debug-compile"
65696638
- ".debug-compile !.sspi .openssl"
65706639
- ".debug-compile !.sspi .nossl"
6640+
- ".authentication-tests"
65716641
- ".latest .openssl !.nosasl .server"
65726642
- ".latest .nossl !.nosasl"
65736643
- ".3.4 .openssl !.nosasl .server"

.evergreen/kerberos.realm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[realms]
2+
LDAPTEST.10GEN.CC = {
3+
kdc = ldaptest.10gen.cc
4+
admin_server = ldaptest.10gen.cc
5+
}

.evergreen/regedit.base64

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//5XAGkAbgBkAG8AdwBzACAAUgBlAGcAaQBzAHQAcgB5ACAARQBkAGkAdABvAHIAIABWAGUAcgBz
2+
AGkAbwBuACAANQAuADAAMAANAAoADQAKAFsASABLAEUAWQBfAEwATwBDAEEATABfAE0AQQBDAEgA
3+
SQBOAEUAXABTAFkAUwBUAEUATQBcAEMAbwBuAHQAcgBvAGwAUwBlAHQAMAAwADEAXABDAG8AbgB0
4+
AHIAbwBsAFwATABzAGEAXABLAGUAcgBiAGUAcgBvAHMAXABEAG8AbQBhAGkAbgBzAF0ADQAKAA0A
5+
CgBbAEgASwBFAFkAXwBMAE8AQwBBAEwAXwBNAEEAQwBIAEkATgBFAFwAUwBZAFMAVABFAE0AXABD
6+
AG8AbgB0AHIAbwBsAFMAZQB0ADAAMAAxAFwAQwBvAG4AdAByAG8AbABcAEwAcwBhAFwASwBlAHIA
7+
YgBlAHIAbwBzAFwARABvAG0AYQBpAG4AcwBcAEwARABBAFAAVABFAFMAVAAuADEAMABHAEUATgAu
8+
AEMAQwBdAA0ACgAiAEsAZABjAE4AYQBtAGUAcwAiAD0AaABlAHgAKAA3ACkAOgA2AGMALAAwADAA
9+
LAA2ADQALAAwADAALAA2ADEALAAwADAALAA3ADAALAAwADAALAA3ADQALAAwADAALAA2ADUALAAw
10+
ADAALAA3ADMALAAwADAALAA3ADQALAAwADAALAAyAGUALAAwADAALAAzADEALAAwADAALABcAA0A
11+
CgAgACAAMwAwACwAMAAwACwANgA3ACwAMAAwACwANgA1ACwAMAAwACwANgBlACwAMAAwACwAMgBl
12+
ACwAMAAwACwANgAzACwAMAAwACwANgAzACwAMAAwACwAMAAwACwAMAAwACwAMAAwACwAMAAwAA0A
13+
CgANAAoAWwBIAEsARQBZAF8ATABPAEMAQQBMAF8ATQBBAEMASABJAE4ARQBcAFMAWQBTAFQARQBN
14+
AFwAQwBvAG4AdAByAG8AbABTAGUAdAAwADAAMQBcAEMAbwBuAHQAcgBvAGwAXABMAHMAYQBcAEsA
15+
ZQByAGIAZQByAG8AcwBcAEQAbwBtAGEAaQBuAHMAXABMAEQAQQBQAFQARQBTAFQAMgAuADEAMABH
16+
AEUATgAuAEMAQwBdAA0ACgAiAEsAZABjAE4AYQBtAGUAcwAiAD0AaABlAHgAKAA3ACkAOgA2AGMA
17+
LAAwADAALAA2ADQALAAwADAALAA2ADEALAAwADAALAA3ADAALAAwADAALAA3ADQALAAwADAALAA2
18+
ADUALAAwADAALAA3ADMALAAwADAALAA3ADQALAAwADAALAAyAGUALAAwADAALAAzADEALAAwADAA
19+
LABcAA0ACgAgACAAMwAwACwAMAAwACwANgA3ACwAMAAwACwANgA1ACwAMAAwACwANgBlACwAMAAw
20+
ACwAMgBlACwAMAAwACwANgAzACwAMAAwACwANgAzACwAMAAwACwAMAAwACwAMAAwACwAMAAwACwA
21+
MAAwAA0ACgANAAoA

.evergreen/run-auth-tests.sh

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,64 @@ set -o errexit # Exit the script with error if any of the commands fail
44

55

66
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
7+
if grep -q "#define MONGOC_ENABLE_SASL 1" src/mongoc/mongoc-config.h; then
8+
SASL=1
9+
else
10+
SASL=0
11+
fi
12+
if grep -q "#define MONGOC_ENABLE_SSL 1" src/mongoc/mongoc-config.h; then
13+
SSL=1
14+
else
15+
SSL=0
16+
fi
717

818
case "$OS" in
919
cygwin*)
1020
export PATH=$PATH:`pwd`/tests:`pwd`/Debug:`pwd`/src/libbson/Debug
1121
chmod +x ./Debug/* src/libbson/Debug/*
12-
./Debug/mongoc-ping.exe "mongodb://schrödinger%40LDAPTEST.10GEN.CC:regnidö[email protected]/?authMechanism=GSSAPI"
13-
./Debug/mongoc-ping.exe "mongodb://drivers%40LDAPTEST.10GEN.CC:[email protected]/?authMechanism=GSSAPI"
14-
./Debug/mongoc-ping.exe "mongodb://drivers%40LDAPTEST2.10GEN.CC:[email protected]/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_REALM:LDAPTEST.10GEN.CC"
22+
# Evergreen fails apply a patchbuild with this file as binary
23+
# We therefore have the registry file encoded as base64, then decode it
24+
# before we load the registry changes
25+
# Removing \r is important as base64 decoding will otherwise fail!
26+
# When BUILD-2708 is fixed, we can remove these lines, and the file
27+
cat .evergreen/regedit.base64 | tr -d '\r' > tmp.base64
28+
base64 --decode tmp.base64 > .evergreen/kerberos.reg
29+
regedit.exe /S .evergreen/kerberos.reg
30+
PING="./Debug/mongoc-ping.exe"
1531
;;
1632

17-
*)
18-
./mongoc-ping "mongodb://schrödinger%40LDAPTEST.10GEN.CC:regnidö[email protected]/?authMechanism=GSSAPI"
19-
./mongoc-ping "mongodb://drivers%40LDAPTEST.10GEN.CC:[email protected]/?authMechanism=GSSAPI"
20-
./mongoc-ping "mongodb://drivers%40LDAPTEST2.10GEN.CC:[email protected]/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_REALM:LDAPTEST.10GEN.CC"
33+
darwin)
34+
export DYLD_LIBRARY_PATH=".libs:src/libbson/.libs"
35+
PING="./mongoc-ping"
36+
;;
37+
38+
sunos)
39+
PATH="/opt/mongodbtoolchain/bin:$PATH"
40+
export LD_LIBRARY_PATH="/opt/csw/lib/amd64/:.libs:src/libbson/.libs"
41+
PING="./mongoc-ping"
2142
;;
43+
44+
*)
45+
# This libtool wrapper script was built in a unique dir like
46+
# "/data/mci/998e754a0d1ed79b8bf733f405b87778/mongoc",
47+
# replace its absolute path with "." so it can run in the CWD.
48+
sed -i'' 's/\/data\/mci\/[a-z0-9]\{32\}\/mongoc/./g' mongoc-ping
49+
export LD_LIBRARY_PATH=".libs:src/libbson/.libs"
50+
PING="./mongoc-ping"
2251
esac
2352

53+
if test -f /tmp/drivers.keytab; then
54+
kinit -k -t /tmp/drivers.keytab -p [email protected] || true
55+
fi
56+
57+
$PING 'mongodb://drivers-team:[email protected]/?authMechanism=PLAIN'
58+
$PING 'mongodb://drivers:[email protected]/mongodb-cr?authMechanism=MONGODB-CR'
59+
60+
if [ $SASL -eq 1 ]; then
61+
$PING "mongodb://drivers%40LDAPTEST.10GEN.CC:[email protected]/?authMechanism=GSSAPI"
62+
if [ "${OS%_*}" = "cygwin" ]; then
63+
$PING "mongodb://drivers%40LDAPTEST2.10GEN.CC:[email protected]/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_REALM:LDAPTEST.10GEN.CC"
64+
$PING "mongodb://schrödinger%40LDAPTEST.10GEN.CC:regnidö[email protected]/?authMechanism=GSSAPI"
65+
fi
66+
fi
67+

.evergreen/run-tests.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ case "$OS" in
4848
;;
4949

5050
*)
51+
#if test -f /tmp/drivers.keytab; then
52+
# See CDRIVER-2000
53+
#export MONGOC_TEST_GSSAPI_USER="drivers%40LDAPTEST.10GEN.CC"
54+
#export MONGOC_TEST_GSSAPI_HOST="LDAPTEST.10GEN.CC"
55+
#kinit -k -t /tmp/drivers.keytab -p [email protected]
56+
#fi
5157
# This libtool wrapper script was built in a unique dir like
5258
# "/data/mci/998e754a0d1ed79b8bf733f405b87778/mongoc",
5359
# replace its absolute path with "." so it can run in the CWD.

0 commit comments

Comments
 (0)