Skip to content

Commit 183ba9b

Browse files
author
Phil Pennock
committed
Merge branch 'fix_docker_test'
Reviewed-In: https://github.com/apcera/gssapi/pull/34
2 parents b2d4b3c + 2243a8f commit 183ba9b

File tree

2 files changed

+54
-49
lines changed

2 files changed

+54
-49
lines changed

test/run-heimdal.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ REALM_NAME="XAMPLE.TEST" \
1212
DOMAIN_NAME="xample.test" \
1313
USER_NAME="testuser" \
1414
USER_PASSWORD="P@ssword!" \
15-
CLIENT_IN_CONTAINER="" \
15+
CLIENT_IN_CONTAINER="yes" \
1616
./run.sh
1717

1818

test/run.sh

Lines changed: 53 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
result="NOT OK FAILED"
66

77
# boot2docker doesn't seem to like /tmp so use the home direcotry for the build
8-
BASE_DIR=$(cd .. && pwd)
8+
BASE_DIR="$(cd .. && pwd)"
99
export TEST_DIR="$HOME/tmp/$(uuidgen)"
10-
mkdir -p $TEST_DIR
11-
cp -R $BASE_DIR $TEST_DIR
12-
DOCKER_DIR=$TEST_DIR/gssapi/test/docker
10+
mkdir -p -- "$TEST_DIR"
11+
cp -R "$BASE_DIR" "$TEST_DIR"
12+
DOCKER_DIR="$TEST_DIR/gssapi/test/docker"
1313

1414
if [[ "$OSTYPE" == "darwin"* ]]; then
1515
DOCKER=docker
@@ -18,22 +18,22 @@ else
1818
fi
1919

2020
function log() {
21-
>&2 /bin/echo "go-gssapi-test: $*"
21+
printf "go-gssapi-test: %s\n" "$*" >&2
2222
}
2323

2424
function cleanup_containers() {
25-
log "Clean up running containers"
26-
running=`$DOCKER ps --all | grep 'go-gssapi-test' | awk '{print $1}'`
27-
if [[ "$running" != "" ]]; then
28-
echo $running | xargs $DOCKER stop >/dev/null
29-
echo $running | xargs $DOCKER rm >/dev/null
30-
fi
25+
log "Clean up running containers"
26+
running=`$DOCKER ps --all | grep 'go-gssapi-test' | awk '{print $1}'`
27+
if [[ "$running" != "" ]]; then
28+
echo $running | xargs $DOCKER stop >/dev/null
29+
echo $running | xargs $DOCKER rm >/dev/null
30+
fi
3131
}
3232

3333
function cleanup() {
3434
set +e
3535

36-
if [[ "${EXT_KDC_HOST}" == "" ]]; then
36+
if [[ "${EXT_KDC_HOST:-}" == "" ]]; then
3737
log "kdc logs:
3838
3939
"
@@ -43,28 +43,28 @@ function cleanup() {
4343
log "service logs:
4444
4545
"
46-
if [[ "$SERVICE_LOG_FILTER" != "" ]]; then
46+
if [[ "${SERVICE_LOG_FILTER:-}" != "" ]]; then
4747
$DOCKER logs service 2>&1 | egrep -v "gssapi-sample:\t[0-9 /:]+ ACCESS "
4848
else
4949
$DOCKER logs service 2>&1
5050
fi
5151

52-
cleanup_containers
52+
cleanup_containers
5353

54-
log "Clean up build directory"
55-
rm -rf $TEST_DIR
54+
log "Clean up build directory"
55+
rm -rf -- "${TEST_DIR:?}"
5656

5757
log $result
5858
}
5959

6060
function build_image() {
61-
comp=$1
62-
name=$2
63-
func=$3
61+
comp="$1"
62+
name="$2"
63+
func="$3"
6464
img="go-gssapi-test-${name}"
65-
image=$($DOCKER images --quiet ${img})
65+
image="$($DOCKER images --quiet ${img})"
6666

67-
if [[ "$REUSE_DOCKER_IMAGES" != "" && "$image" != "" ]]; then
67+
if [[ "${REUSE_DOCKER_IMAGES:-}" != "" && "$image" != "" ]]; then
6868
log "Reuse cached docker image ${img} ${image}"
6969
else
7070
log "Build docker image ${img}"
@@ -76,31 +76,36 @@ function build_image() {
7676
--rm \
7777
--quiet \
7878
--tag=${img} \
79-
$DOCKER_DIR/${comp}
79+
"$DOCKER_DIR/${comp}"
8080
fi
8181
}
8282

83+
# Caveat: Quote characters in USER_PASSWORD may cause Severe Pain.
84+
# Don't do that.
85+
# This only has to handle Docker tests, not quite the Real World,
86+
# so we can get away with this restriction.
87+
#
8388
function run_image() {
84-
comp=$1
85-
name=$2
86-
options=$3
89+
comp="$1"
90+
name="$2"
91+
options="$3"
8792
img="go-gssapi-test-${name}"
8893
log "Run docker image ${img}"
89-
options="${options} \
94+
options="${options} \
9095
--hostname=${comp} \
9196
--name=${comp} \
9297
--env SERVICE_NAME=${SERVICE_NAME} \
9398
--env USER_NAME=${USER_NAME} \
9499
--env USER_PASSWORD=${USER_PASSWORD} \
95100
--env REALM_NAME=${REALM_NAME} \
96101
--env DOMAIN_NAME=${DOMAIN_NAME}"
97-
$DOCKER run -P ${options} ${img}
102+
$DOCKER run -P ${options} ${img}
98103
}
99104

100105
function map_ports() {
101-
comp=$1
102-
port=$2
103-
COMP=`echo $comp | tr '[:lower:]' '[:upper:]'`
106+
comp="$1"
107+
port="$2"
108+
COMP="$(printf "%s\n" "$comp" | tr '[:lower:]' '[:upper:]')"
104109
if [[ "${OSTYPE}" == "darwin"* ]]; then
105110
b2d_ip=$(boot2docker ip)
106111
export ${COMP}_PORT_${port}_TCP_ADDR=${b2d_ip}
@@ -111,16 +116,16 @@ function map_ports() {
111116
}
112117

113118
function wait_until_available() {
114-
comp=$1
115-
addr=$2
116-
port=$3
119+
comp="$1"
120+
addr="$2"
121+
port="$3"
117122

118-
i=1
123+
let i=1
119124
while ! echo exit | nc $addr $port >/dev/null; do
120125
echo "Waiting for $comp to start"
121126
sleep 1
122-
i=`expr $i + 1`
123-
if [[ $i -gt 10 ]]; then
127+
let i++
128+
if (( i > 10 )); then
124129
echo "Timed out waiting for ${comp} to start at ${addr}:${port}"
125130
exit 1
126131
fi
@@ -135,11 +140,11 @@ env_suffix=$(/bin/echo "${REALM_NAME}-${SERVICE_NAME}" | shasum | cut -f1 -d ' '
135140

136141
# KDC
137142
if [[ "${EXT_KDC_HOST}" == "" ]]; then
138-
cat $DOCKER_DIR/kdc/krb5.conf.template \
143+
cat "$DOCKER_DIR/kdc/krb5.conf.template" \
139144
| sed -e "s/KDC_ADDRESS/0.0.0.0:88/g" \
140145
| sed -e "s/DOMAIN_NAME/${DOMAIN_NAME}/g" \
141146
| sed -e "s/REALM_NAME/${REALM_NAME}/g" \
142-
> $DOCKER_DIR/kdc/krb5.conf
147+
> "$DOCKER_DIR/kdc/krb5.conf"
143148

144149
build_image "kdc" "kdc-${env_suffix}" "" >/dev/null
145150
run_image "kdc" "kdc-${env_suffix}" "--detach" >/dev/null
@@ -151,14 +156,14 @@ fi
151156
wait_until_available "kdc" $KDC_PORT_88_TCP_ADDR $KDC_PORT_88_TCP_PORT
152157

153158
function keytab_from_kdc() {
154-
$DOCKER cp kdc:/etc/docker-kdc/krb5.keytab $DOCKER_DIR/service
159+
$DOCKER cp kdc:/etc/docker-kdc/krb5.keytab "$DOCKER_DIR/service"
155160
}
156161

157162
function keytab_from_options() {
158-
cp ${KEYTAB_FILE} $DOCKER_DIR/service/krb5.keytab
163+
cp "${KEYTAB_FILE}" "$DOCKER_DIR/service/krb5.keytab"
159164
}
160165

161-
if [[ "${EXT_KDC_HOST}" == "" ]]; then
166+
if [[ "${EXT_KDC_HOST:-}" == "" ]]; then
162167
DOCKER_KDC_OPTS='--link=kdc:kdc'
163168
KEYTAB_FUNCTION='keytab_from_kdc'
164169
else
@@ -191,14 +196,14 @@ if [[ "$OSTYPE" != "darwin"* || "$CLIENT_IN_CONTAINER" != "" ]]; then
191196
else
192197
log "Run gssapi sample client on host"
193198
KRB5_CONFIG_TEMPLATE=${DOCKER_DIR}/client/krb5.conf.template \
194-
DOMAIN_NAME=${DOMAIN_NAME} \
199+
DOMAIN_NAME="${DOMAIN_NAME}" \
195200
GSSAPI_PATH=/opt/local/lib/libgssapi_krb5.dylib \
196-
KRB5_CONFIG=${TEST_DIR}/krb5.conf \
197-
REALM_NAME=${REALM_NAME} \
198-
SERVICE_NAME=${SERVICE_NAME} \
199-
USER_NAME=${USER_NAME} \
200-
USER_PASSWORD=${USER_PASSWORD} \
201-
${DOCKER_DIR}/client/entrypoint.sh
201+
KRB5_CONFIG="${TEST_DIR}/krb5.conf" \
202+
REALM_NAME="${REALM_NAME}" \
203+
SERVICE_NAME="${SERVICE_NAME}" \
204+
USER_NAME="${USER_NAME}" \
205+
USER_PASSWORD="${USER_PASSWORD}" \
206+
"${DOCKER_DIR}/client/entrypoint.sh"
202207
fi
203208

204209
result="OK TEST PASSED"

0 commit comments

Comments
 (0)