Skip to content

Commit 09819ad

Browse files
committed
test: iptables: Remove start-up race condition
* The iptables rule to check will only be present after the server has succeeded at starting-up. * Spin up to ~10 seconds waiting. * Fix eval which was intended to be an exec. * Simplify kill + rm.
1 parent a71140e commit 09819ad

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

test/tests/iptables/run.sh

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@ docker run -v $OVPN_DATA:/etc/openvpn --rm -it -e "EASYRSA_BATCH=1" -e "EASYRSA_
1616
docker run -d --name $NAME -v $OVPN_DATA:/etc/openvpn --cap-add=NET_ADMIN $IMG
1717

1818
# check default iptables rules
19-
docker exec -ti $NAME bash -c 'source /etc/openvpn/ovpn_env.sh; eval iptables -t nat -C POSTROUTING -s $OVPN_SERVER -o eth0 -j MASQUERADE'
19+
for i in $(seq 10); do
20+
docker exec -ti $NAME bash -c 'source /etc/openvpn/ovpn_env.sh; exec iptables -t nat -C POSTROUTING -s $OVPN_SERVER -o eth0 -j MASQUERADE' && break
21+
echo waiting for server start-up
22+
sleep 1
23+
done
2024

2125
# append new setupIptablesAndRouting function to config
2226
docker exec -ti $NAME bash -c 'echo function setupIptablesAndRouting { iptables -t nat -A POSTROUTING -m comment --comment "test"\;} >> /etc/openvpn/ovpn_env.sh'
2327

2428
# kill server in preparation to modify config
25-
docker kill $NAME
26-
docker rm $NAME
29+
docker rm -f $NAME
2730

2831
# check that overridden function exists and that test iptables rules is active
2932
docker run -d --name $NAME -v $OVPN_DATA:/etc/openvpn --cap-add=NET_ADMIN $IMG
@@ -33,6 +36,5 @@ docker exec -ti $NAME bash -c 'source /etc/openvpn/ovpn_env.sh; type -t setupIpt
3336
# kill server
3437
#
3538

36-
docker kill $NAME
37-
docker rm $NAME
39+
docker rm -f $NAME
3840
docker volume rm $OVPN_DATA

0 commit comments

Comments
 (0)