Skip to content

Commit 684e257

Browse files
committed
CDRIVER-1955 Run GSSAPI tests in evergreen
1 parent 426d233 commit 684e257

File tree

8 files changed

+253
-10
lines changed

8 files changed

+253
-10
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: 69 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"
@@ -5962,6 +5985,25 @@ tasks:
59625985
BUILD_NAME: "debug-compile-sspi-winssl"
59635986
- func: "run auth tests"
59645987

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

59666008
# }}}
59676009

@@ -5994,6 +6036,7 @@ buildvariants:
59946036
- "debug-compile"
59956037
- ".debug-compile !.sspi .openssl"
59966038
- ".debug-compile !.sspi .nossl"
6039+
- ".authentication-tests"
59976040
- ".latest .openssl !.nosasl .server"
59986041
- ".latest .nossl !.nosasl"
59996042
- ".3.4 .openssl !.nosasl .server"
@@ -6016,6 +6059,7 @@ buildvariants:
60166059
- ".debug-compile .stdflags !.c89"
60176060
- ".debug-compile !.sspi .openssl"
60186061
- ".debug-compile !.sspi .nossl"
6062+
- ".authentication-tests"
60196063
- ".latest .openssl !.nosasl .server"
60206064
- ".latest .nossl !.nosasl"
60216065
- ".3.4 .openssl !.nosasl .server"
@@ -6034,6 +6078,7 @@ buildvariants:
60346078
- ".debug-compile .stdflags !.c89"
60356079
- ".debug-compile !.sspi .openssl"
60366080
- ".debug-compile !.sspi .nossl"
6081+
- ".authentication-tests"
60376082
- ".latest .nossl !.nosasl"
60386083
- ".3.4 .nossl !.nosasl"
60396084
- ".3.2 .nossl !.nosasl" # No enterprise build for Archlinux, SSL not available
@@ -6055,6 +6100,7 @@ buildvariants:
60556100
- "debug-compile"
60566101
- ".debug-compile .stdflags !.c89"
60576102
- ".debug-compile !.sspi .nossl .nosasl"
6103+
- ".authentication-tests !.sasl"
60586104
- ".latest .nossl .nosasl"
60596105
- ".3.4 .nossl .nosasl"
60606106
# We don't have i386 builds of OpenSSL or Cyrus SASL installed
@@ -6074,6 +6120,7 @@ buildvariants:
60746120
- ".debug-compile .stdflags !.c89"
60756121
- ".debug-compile !.sspi .openssl"
60766122
- ".debug-compile !.sspi .nossl"
6123+
- ".authentication-tests"
60776124
- ".latest .openssl !.nosasl .server"
60786125
- ".latest .nossl !.nosasl"
60796126
- ".3.4 .openssl !.nosasl .server"
@@ -6092,6 +6139,7 @@ buildvariants:
60926139
- "debug-compile"
60936140
- ".debug-compile !.sspi .openssl"
60946141
- ".debug-compile !.sspi .nossl"
6142+
- ".authentication-tests"
60956143
- ".latest .openssl !.nosasl .server"
60966144
- ".latest .nossl !.nosasl"
60976145
- ".3.4 .openssl !.nosasl .server"
@@ -6113,6 +6161,7 @@ buildvariants:
61136161
- "debug-compile"
61146162
- ".debug-compile !.sspi .openssl"
61156163
- ".debug-compile !.sspi .nossl"
6164+
- ".authentication-tests"
61166165
- ".latest .openssl !.nosasl .server"
61176166
- ".latest .nossl !.nosasl"
61186167
- ".latest .nossl !.nosasl !.ipv4-only"
@@ -6135,6 +6184,7 @@ buildvariants:
61356184
- "debug-compile"
61366185
- ".debug-compile !.sspi .openssl"
61376186
- ".debug-compile !.sspi .nossl"
6187+
- ".authentication-tests"
61386188
- ".latest .openssl !.nosasl .server"
61396189
- ".latest .nossl !.nosasl"
61406190
- ".3.4 .openssl !.nosasl .server"
@@ -6157,6 +6207,7 @@ buildvariants:
61576207
- "debug-compile"
61586208
- ".debug-compile !.sspi .openssl"
61596209
- ".debug-compile !.sspi .nossl"
6210+
- ".authentication-tests"
61606211
- ".latest .openssl !.nosasl .server"
61616212
- ".latest .nossl !.nosasl"
61626213
- ".3.4 .openssl !.nosasl .server"
@@ -6175,6 +6226,7 @@ buildvariants:
61756226
- "debug-compile-coverage"
61766227
- "release-compile"
61776228
- "debug-compile"
6229+
- ".authentication-tests !.sasl"
61786230
- ".debug-compile !.sspi .nossl .nosasl"
61796231
- ".latest .nossl .nosasl"
61806232
- ".3.4 .nossl .nosasl"
@@ -6194,6 +6246,7 @@ buildvariants:
61946246
- "debug-compile"
61956247
- ".debug-compile !.sspi .openssl"
61966248
- ".debug-compile !.sspi .nossl"
6249+
- ".authentication-tests"
61976250
- ".latest .openssl !.nosasl .server"
61986251
- ".latest .nossl !.nosasl"
61996252
- ".3.4 .openssl !.nosasl .server"
@@ -6213,6 +6266,7 @@ buildvariants:
62136266
- "release-compile"
62146267
- "debug-compile"
62156268
- ".debug-compile !.sspi .nossl"
6269+
- ".authentication-tests"
62166270
- ".latest .nossl" # No MongoDB SSL builds available for any version
62176271
- ".3.4 .nossl" # No MongoDB SSL builds available for any version
62186272
- ".3.2 .nossl !.nosasl"
@@ -6231,6 +6285,7 @@ buildvariants:
62316285
- "release-compile"
62326286
- "debug-compile"
62336287
- ".debug-compile !.sspi .nossl .nosasl"
6288+
- ".authentication-tests !.sasl"
62346289
- ".latest .nossl .nosasl"
62356290
- ".3.4 .nossl .nosasl"
62366291
# We don't have i386 builds of OpenSSL or Cyrus SASL installed
@@ -6249,6 +6304,7 @@ buildvariants:
62496304
- ".debug-compile !.sspi .openssl"
62506305
- ".debug-compile !.sspi .nossl"
62516306
- ".debug-compile .clang"
6307+
- ".authentication-tests"
62526308
- ".latest .darwinssl !.nosasl .server"
62536309
- ".latest .openssl !.nosasl .server"
62546310
- ".latest .nossl !.nosasl"
@@ -6274,6 +6330,7 @@ buildvariants:
62746330
- ".debug-compile !.sspi .openssl"
62756331
- ".debug-compile !.sspi .nossl"
62766332
- ".debug-compile .sspi"
6333+
- ".authentication-tests"
62776334
- ".latest .winssl !.nosasl .server"
62786335
- ".latest .openssl !.nosasl .server"
62796336
- ".latest .nossl !.nosasl"
@@ -6300,6 +6357,7 @@ buildvariants:
63006357
- ".debug-compile .sspi !.openssl"
63016358
- ".debug-compile .winssl .nosasl"
63026359
- ".debug-compile !.sspi .nossl .nosasl"
6360+
- ".authentication-tests !.sasl"
63036361
- ".latest .winssl .nosasl .server"
63046362
- ".latest .nossl .nosasl"
63056363
- ".latest .sspi"
@@ -6324,6 +6382,7 @@ buildvariants:
63246382
- ".debug-compile !.sspi .openssl"
63256383
- ".debug-compile !.sspi .nossl"
63266384
- ".debug-compile .sspi"
6385+
- ".authentication-tests"
63276386
- ".latest .winssl !.nosasl .server"
63286387
- ".latest .openssl !.nosasl .server"
63296388
- ".latest .nossl !.nosasl"
@@ -6349,6 +6408,7 @@ buildvariants:
63496408
- ".debug-compile .sspi !.openssl"
63506409
- ".debug-compile .winssl .nosasl"
63516410
- ".debug-compile !.sspi .nossl .nosasl"
6411+
- ".authentication-tests !.sasl"
63526412
- ".latest .winssl .nosasl .server"
63536413
- ".latest .nossl .nosasl"
63546414
- ".latest .sspi"
@@ -6373,6 +6433,7 @@ buildvariants:
63736433
- ".debug-compile !.sspi .openssl"
63746434
- ".debug-compile !.sspi .nossl"
63756435
- ".debug-compile .sspi"
6436+
- ".authentication-tests"
63766437
- ".latest .winssl !.nosasl .server"
63776438
- ".latest .openssl !.nosasl .server"
63786439
- ".latest .nossl !.nosasl"
@@ -6400,6 +6461,7 @@ buildvariants:
64006461
- ".debug-compile .winssl .nosasl"
64016462
- ".debug-compile !.sspi .nossl .nosasl"
64026463
- ".debug-compile .nossl .sspi"
6464+
- ".authentication-tests !.sasl"
64036465
- ".latest .winssl .nosasl .server"
64046466
- ".latest .nossl .nosasl"
64056467
- ".latest .sspi"
@@ -6434,6 +6496,7 @@ buildvariants:
64346496
- "debug-compile"
64356497
- ".debug-compile !.sspi .openssl"
64366498
- ".debug-compile !.sspi .nossl"
6499+
- ".authentication-tests"
64376500
- ".latest .openssl !.nosasl .server"
64386501
- ".latest .nossl !.nosasl"
64396502
- ".3.4 .openssl !.nosasl .server"
@@ -6457,6 +6520,7 @@ buildvariants:
64576520
- "debug-compile"
64586521
- ".debug-compile !.sspi .openssl"
64596522
- ".debug-compile !.sspi .nossl"
6523+
- ".authentication-tests"
64606524
- ".latest .openssl !.nosasl .server"
64616525
- ".latest .nossl !.nosasl"
64626526
- ".3.4 .openssl !.nosasl .server"
@@ -6478,6 +6542,7 @@ buildvariants:
64786542
- "debug-compile"
64796543
- ".debug-compile !.sspi .openssl"
64806544
- ".debug-compile !.sspi .nossl"
6545+
- ".authentication-tests"
64816546
- ".latest .openssl !.nosasl .server"
64826547
- ".latest .nossl !.nosasl"
64836548
- ".3.4 .openssl !.nosasl .server"
@@ -6497,6 +6562,7 @@ buildvariants:
64976562
- "debug-compile"
64986563
- ".debug-compile !.sspi .openssl"
64996564
- ".debug-compile !.sspi .nossl"
6565+
- ".authentication-tests"
65006566
- ".latest .openssl !.nosasl .server"
65016567
- ".latest .nossl !.nosasl"
65026568
- ".3.4 .openssl !.nosasl .server"
@@ -6517,6 +6583,7 @@ buildvariants:
65176583
- "debug-compile"
65186584
- ".debug-compile !.sspi .openssl"
65196585
- ".debug-compile !.sspi .nossl"
6586+
- ".authentication-tests"
65206587
- ".latest .openssl !.nosasl .server"
65216588
- ".latest .nossl !.nosasl"
65226589
- ".3.4 .openssl !.nosasl .server"
@@ -6536,6 +6603,7 @@ buildvariants:
65366603
- "debug-compile"
65376604
- ".debug-compile !.sspi .openssl"
65386605
- ".debug-compile !.sspi .nossl"
6606+
- ".authentication-tests"
65396607
- ".latest .openssl !.nosasl .server"
65406608
- ".latest .nossl !.nosasl"
65416609
- ".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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ case "$OS" in
4848
;;
4949

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

0 commit comments

Comments
 (0)