-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_tests.sh
executable file
·72 lines (52 loc) · 1.38 KB
/
run_tests.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
set -e
trap 'end $?' EXIT
end() {
if [ "$KDCPROC" != "0" ]; then
kill $KDCPROC
fi
if [ "$SRVPROC" != "0" ]; then
kill $SRVPROC
fi
exit $1
}
trap 'err $? $LINENO' ERR
err() {
echo "Error $1 occurred at line $2"
exit $1
}
TESTDIR=`realpath testdir_wgss`
KRB5_CONFIG=${TESTDIR}/krb5.conf
KRB5_KTNAME=${TESTDIR}/server.kt
KRB5_TRACE=${TESTDIR}/krb5_trace
KDCPROXY_CONFIG=${TESTDIR}/kproxy.conf
export KRB5_CONFIG KRB5_KTNAME KRB5_TRACE
KDCPROC=0
SRVPROC=0
HTTPDPORT=9999
KDCPORT=8888
KRB5REALM=WGSS.TEST
HOSTNAME=localhost
KSERVICE=HTTP/$HOSTNAME
KUSER=kuser
KUPWD=kuserpwd
rm -rf $TESTDIR && mkdir $TESTDIR
sed -e "s/_TEST_REALM_/$KRB5REALM/g" \
-e "s/_TEST_HOSTNAME_/$HOSTNAME/g" \
-e "s/_TEST_KDC_PORT_/$KDCPORT/g" \
-e "s|_TEST_DIR_|$TESTDIR|g" \
t_krb5.conf > $KRB5_CONFIG
kdb5_util create -W -r $KRB5REALM -s -P kdcpwd
kadmin.local -q "addprinc -randkey $KSERVICE"
kadmin.local -q "ktadd -k $KRB5_KTNAME $KSERVICE"
kadmin.local -q "addprinc -pw $KUPWD $KUSER"
krb5kdc -n > ${TESTDIR}/kdc_out 2>&1 &
KDCPROC=$!
printf "[global]\nconfigs = mit" > $KDCPROXY_CONFIG
export KUSER KUPWD KRB5REALM HOSTNAME HTTPDPORT KDCPROXY_CONFIG
python3 ./wsgi-server.py $HOSTNAME $HTTPDPORT &
SRVPROC=$!
sleep 1
node --trace-uncaught --trace-warnings node_test.js > ${TESTDIR}/out
grep "Hello $KUSER@$KRB5REALM" ${TESTDIR}/out
echo "TEST OK"