Skip to content

Commit 192ce97

Browse files
committed
test: Drop dependence on --net=host
* This is really hard to work on other things while running this test when the host networking stack is being manipulated, primarily the default route. * Propagate DEBUG flag deeper where possible.
1 parent dc81347 commit 192ce97

File tree

3 files changed

+44
-15
lines changed

3 files changed

+44
-15
lines changed

test/tests/dual-proto/run.sh

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,30 @@ docker run -v $OVPN_DATA:/etc/openvpn --rm $IMG ovpn_listclients | grep $CLIENT_
3636
#
3737

3838
# Run in shell bg to get logs, setup trap to clean-up
39-
trap "{ jobs -p | xargs -r kill; wait; }" EXIT
40-
docker run --name "ovpn-test-udp" -v $OVPN_DATA:/etc/openvpn --rm -p 1194:1194/udp --cap-add=NET_ADMIN $IMG &
41-
docker run --name "ovpn-test-tcp" -v $OVPN_DATA:/etc/openvpn --rm -p 443:1194/tcp --cap-add=NET_ADMIN $IMG ovpn_run --proto tcp &
39+
trap "{ jobs -p | xargs -r kill; wait; docker volume rm ${OVPN_DATA}; }" EXIT
40+
docker run --name "ovpn-test-udp" -v $OVPN_DATA:/etc/openvpn --rm --cap-add=NET_ADMIN -e DEBUG $IMG &
41+
docker run --name "ovpn-test-tcp" -v $OVPN_DATA:/etc/openvpn --rm --cap-add=NET_ADMIN -e DEBUG $IMG ovpn_run --proto tcp --port 443 &
42+
43+
# Update configs
44+
for i in $(seq 10); do
45+
SERV_IP_INTERNAL=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' "ovpn-test-udp" 2>/dev/null || true)
46+
test -n "$SERV_IP_INTERNAL" && break
47+
sleep 0.1
48+
done
49+
sed -i -e s:$SERV_IP:$SERV_IP_INTERNAL:g $CLIENT_DIR/config.ovpn
50+
51+
for i in $(seq 10); do
52+
SERV_IP_INTERNAL=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' "ovpn-test-tcp" 2>/dev/null || true)
53+
test -n "$SERV_IP_INTERNAL" && break
54+
sleep 0.1
55+
done
56+
sed -i -e s:$SERV_IP:$SERV_IP_INTERNAL:g $CLIENT_DIR/config-tcp.ovpn
4257

4358
#
44-
# Fire up a clients in a containers since openvpn is disallowed by Travis-CI, don't NAT
45-
# the host as it confuses itself:
46-
# "Incoming packet rejected from [AF_INET]172.17.42.1:1194[2], expected peer address: [AF_INET]10.240.118.86:1194"
59+
# Fire up a clients in a containers since openvpn is disallowed by Travis-CI
4760
#
48-
docker run --rm --net=host --cap-add=NET_ADMIN --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh
49-
docker run --rm --net=host --cap-add=NET_ADMIN --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh "/client/config-tcp.ovpn"
61+
docker run --rm --cap-add=NET_ADMIN -v $CLIENT_DIR:/client -e DEBUG $IMG /client/wait-for-connect.sh
62+
docker run --rm --cap-add=NET_ADMIN -v $CLIENT_DIR:/client -e DEBUG $IMG /client/wait-for-connect.sh "/client/config-tcp.ovpn"
5063

5164
#
5265
# Celebrate

test/tests/otp/run.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,15 @@ trap "{ jobs -p | xargs -r kill; wait; }" EXIT
5353
docker run --name "ovpn-test" -v $OVPN_DATA:/etc/openvpn --rm --cap-add=NET_ADMIN $IMG &
5454

5555
for i in $(seq 10); do
56-
SERV_IP_INTERNAL=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}')
56+
SERV_IP_INTERNAL=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' "ovpn-test" 2>/dev/null || true)
5757
test -n "$SERV_IP_INTERNAL" && break
58+
sleep 0.1
5859
done
59-
sed -ie s:$SERV_IP:$SERV_IP:g $CLIENT_DIR/config.ovpn
60+
sed -i -e s:$SERV_IP:$SERV_IP_INTERNAL:g $CLIENT_DIR/config.ovpn
6061

6162
#
6263
# Fire up a client in a container since openvpn is disallowed by Travis-CI
63-
docker run --rm --net=host --cap-add=NET_ADMIN --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh
64+
docker run --rm --cap-add=NET_ADMIN --volume $CLIENT_DIR:/client -e DEBUG $IMG /client/wait-for-connect.sh
6465

6566
#
6667
# Celebrate

test/tests/revocation/run.sh

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function finish {
2929
trap finish EXIT
3030

3131
# Put the server in the background
32-
docker run -d -v $OVPN_DATA:/etc/openvpn --cap-add=NET_ADMIN -p 1194:1194/udp --name $NAME $IMG
32+
docker run -d -v $OVPN_DATA:/etc/openvpn --cap-add=NET_ADMIN --name $NAME $IMG
3333

3434
#
3535
# Test that easy_rsa generate CRLs with 'next publish' set to 3650 days.
@@ -51,10 +51,18 @@ docker exec -it $NAME easyrsa build-client-full $CLIENT1 nopass
5151
docker exec -it $NAME ovpn_getclient $CLIENT1 > $CLIENT_DIR/config.ovpn
5252
docker exec -it $NAME bash -c "echo 'yes' | ovpn_revokeclient $CLIENT1"
5353

54+
# Determine IP address of container running daemon and update config
55+
for i in $(seq 10); do
56+
SERV_IP_INTERNAL=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$NAME" 2>/dev/null || true)
57+
test -n "$SERV_IP_INTERNAL" && break
58+
sleep 0.1
59+
done
60+
sed -i -e s:$SERV_IP:$SERV_IP_INTERNAL:g $CLIENT_DIR/config.ovpn
61+
5462
#
5563
# Test that openvpn client can't connect using $CLIENT1 config.
5664
#
57-
if docker run --rm -v $CLIENT_DIR:/client --cap-add=NET_ADMIN --cap-add=NET_ADMIN --net=host $IMG /client/wait-for-connect.sh; then
65+
if docker run --rm -v $CLIENT_DIR:/client --cap-add=NET_ADMIN -e DEBUG $IMG /client/wait-for-connect.sh; then
5866
echo "Client was able to connect after revocation test #1." >&2
5967
exit 2
6068
fi
@@ -66,7 +74,14 @@ docker exec -it $NAME easyrsa build-client-full $CLIENT2 nopass
6674
docker exec -it $NAME ovpn_getclient $CLIENT2 > $CLIENT_DIR/config.ovpn
6775
docker exec -it $NAME bash -c "echo 'yes' | ovpn_revokeclient $CLIENT2"
6876

69-
if docker run --rm -v $CLIENT_DIR:/client --cap-add=NET_ADMIN --cap-add=NET_ADMIN --net=host $IMG /client/wait-for-connect.sh; then
77+
# Determine IP address of container running daemon and update config
78+
for i in $(seq 10); do
79+
SERV_IP_INTERNAL=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$NAME" 2>/dev/null || true)
80+
test -n "$SERV_IP_INTERNAL" && break
81+
sleep 0.1
82+
done
83+
84+
if docker run --rm -v $CLIENT_DIR:/client --cap-add=NET_ADMIN -e DEBUG $IMG /client/wait-for-connect.sh; then
7085
echo "Client was able to connect after revocation test #2." >&2
7186
exit 2
7287
fi
@@ -79,7 +94,7 @@ docker stop $NAME && docker start $NAME
7994
#
8095
# Test for failed connection using $CLIENT2 config again.
8196
#
82-
if docker run --rm -v $CLIENT_DIR:/client --cap-add=NET_ADMIN --cap-add=NET_ADMIN --net=host $IMG /client/wait-for-connect.sh; then
97+
if docker run --rm -v $CLIENT_DIR:/client --cap-add=NET_ADMIN -e DEBUG $IMG /client/wait-for-connect.sh; then
8398
echo "Client was able to connect after revocation test #3." >&2
8499
exit 2
85100
fi

0 commit comments

Comments
 (0)