Skip to content

Commit bcf8dc5

Browse files
committed
test: Migrate from old test scripts
* Switch to upstream Docker inspired test suite. * Major disadvantage: Seeing the stdout log. To be researched later.
1 parent 65bebae commit bcf8dc5

File tree

7 files changed

+39
-39
lines changed

7 files changed

+39
-39
lines changed

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ before_install:
1616
install:
1717
- git clone https://github.com/docker-library/official-images.git official-images
1818

19+
# Assist with ci test debugging:
20+
# - DEBUG=1
1921
before_script:
2022
- image="kylemanna/openvpn"
2123
- docker build -t "$image" .
@@ -26,7 +28,6 @@ before_script:
2628
script:
2729
- official-images/test/run.sh "$image"
2830
- test/run.sh "$image"
29-
- ./test-ci.sh
3031

3132
after_script:
3233
- docker images

test-ci.sh

-19
This file was deleted.

tests/client/wait-for-connect.sh test/client/wait-for-connect.sh

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#!/bin/bash
2-
set -ex
2+
set -e
3+
4+
[ -n "${DEBUG+x}" ] && set -x
5+
36
OPENVPN_CONFIG=${1:-/client/config.ovpn}
47

58
# Run in background, rely on bash for job management

test/config.sh

+3
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@ imageTests+=(
99
[openvpn]='
1010
paranoid
1111
conf_options
12+
basic
13+
dual-proto
14+
otp
1215
'
1316
)

tests/basic.sh test/tests/basic/run.sh

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
#!/bin/bash
2-
set -ex
2+
set -e
3+
4+
[ -n "${DEBUG+x}" ] && set -x
5+
36
OVPN_DATA=basic-data
47
CLIENT=travis-client
58
IMG=kylemanna/openvpn
9+
CLIENT_DIR="$(readlink -f "$(dirname "$BASH_SOURCE")/../../client")"
610

711
#
812
# Create a docker container with the config data
@@ -18,7 +22,7 @@ docker run --volumes-from $OVPN_DATA --rm -it -e "EASYRSA_BATCH=1" -e "EASYRSA_R
1822

1923
docker run --volumes-from $OVPN_DATA --rm -it $IMG easyrsa build-client-full $CLIENT nopass
2024

21-
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT | tee client/config.ovpn
25+
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT | tee $CLIENT_DIR/config.ovpn
2226

2327
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_listclients | grep $CLIENT
2428

@@ -34,14 +38,14 @@ docker run --name "ovpn-test" --volumes-from $OVPN_DATA --rm -p 1194:1194/udp --
3438
# SERV_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}')
3539
# test -n "$SERV_IP" && break
3640
#done
37-
#sed -ie s:SERV_IP:$SERV_IP:g client/config.ovpn
41+
#sed -ie s:SERV_IP:$SERV_IP:g config.ovpn
3842

3943
#
4044
# Fire up a client in a container since openvpn is disallowed by Travis-CI, don't NAT
4145
# the host as it confuses itself:
4246
# "Incoming packet rejected from [AF_INET]172.17.42.1:1194[2], expected peer address: [AF_INET]10.240.118.86:1194"
4347
#
44-
docker run --rm --net=host --privileged --volume $PWD/client:/client $IMG /client/wait-for-connect.sh
48+
docker run --rm --net=host --privileged --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh
4549

4650
#
4751
# Client either connected or timed out, kill server

tests/dual-proto.sh test/tests/dual-proto/run.sh

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
#!/bin/bash
2-
set -ex
2+
set -e
3+
4+
[ -n "${DEBUG+x}" ] && set -x
35

46
OVPN_DATA=dual-data
57
CLIENT_UDP=travis-client
68
CLIENT_TCP=travis-client-tcp
79
IMG=kylemanna/openvpn
10+
CLIENT_DIR="$(readlink -f "$(dirname "$BASH_SOURCE")/../../client")"
811

912
#
1013
# Create a docker container with the config data
@@ -22,12 +25,12 @@ docker run --volumes-from $OVPN_DATA --rm -it -e "EASYRSA_BATCH=1" -e "EASYRSA_R
2225

2326
# gen TCP client
2427
docker run --volumes-from $OVPN_DATA --rm -it $IMG easyrsa build-client-full $CLIENT_TCP nopass
25-
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT_TCP | tee client/config-tcp.ovpn
28+
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT_TCP | tee $CLIENT_DIR/config-tcp.ovpn
2629

2730
# switch to UDP config and gen UDP client
2831
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_genconfig -u udp://$SERV_IP
2932
docker run --volumes-from $OVPN_DATA --rm -it $IMG easyrsa build-client-full $CLIENT_UDP nopass
30-
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT_UDP | tee client/config.ovpn
33+
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT_UDP | tee $CLIENT_DIR/config.ovpn
3134

3235
#Verify client configs
3336
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_listclients | grep $CLIENT_TCP
@@ -48,8 +51,8 @@ docker run --name "ovpn-test-tcp" --volumes-from $OVPN_DATA --rm -p 443:1194/tcp
4851
# the host as it confuses itself:
4952
# "Incoming packet rejected from [AF_INET]172.17.42.1:1194[2], expected peer address: [AF_INET]10.240.118.86:1194"
5053
#
51-
docker run --rm --net=host --privileged --volume $PWD/client:/client $IMG /client/wait-for-connect.sh
52-
docker run --rm --net=host --privileged --volume $PWD/client:/client $IMG /client/wait-for-connect.sh "/client/config-tcp.ovpn"
54+
docker run --rm --net=host --privileged --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh
55+
docker run --rm --net=host --privileged --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh "/client/config-tcp.ovpn"
5356

5457
#
5558
# Client either connected or timed out, kill server

tests/otp.sh test/tests/otp/run.sh

+14-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
#!/bin/bash
2-
set -ex
2+
set -e
3+
4+
[ -n "${DEBUG+x}" ] && set -x
5+
36
OVPN_DATA=basic-data-otp
47
CLIENT=travis-client
58
IMG=kylemanna/openvpn
69
OTP_USER=otp
10+
CLIENT_DIR="$(readlink -f "$(dirname "$BASH_SOURCE")/../../client")"
11+
712
# Function to fail
813
abort() { cat <<< "$@" 1>&2; exit 1; }
914

@@ -23,22 +28,22 @@ docker run --volumes-from $OVPN_DATA --rm -it -e "EASYRSA_BATCH=1" -e "EASYRSA_R
2328
docker run --volumes-from $OVPN_DATA --rm -it $IMG easyrsa build-client-full $CLIENT nopass
2429

2530
# Generate OTP credentials for user named test, should return QR code for test user
26-
docker run --volumes-from $OVPN_DATA --rm -it $IMG ovpn_otp_user $OTP_USER | tee client/qrcode.txt
31+
docker run --volumes-from $OVPN_DATA --rm -it $IMG ovpn_otp_user $OTP_USER | tee $CLIENT_DIR/qrcode.txt
2732
# Ensure a chart link is printed in client OTP configuration
28-
grep 'https://www.google.com/chart' client/qrcode.txt || abort 'Link to chart not generated'
29-
grep 'Your new secret key is:' client/qrcode.txt || abort 'Secret key is missing'
33+
grep 'https://www.google.com/chart' $CLIENT_DIR/qrcode.txt || abort 'Link to chart not generated'
34+
grep 'Your new secret key is:' $CLIENT_DIR/qrcode.txt || abort 'Secret key is missing'
3035
# Extract an emergency code from textual output, grepping for line and trimming spaces
31-
OTP_TOKEN=$(grep -A1 'Your emergency scratch codes are' client/qrcode.txt | tail -1 | tr -d '[[:space:]]')
36+
OTP_TOKEN=$(grep -A1 'Your emergency scratch codes are' $CLIENT_DIR/qrcode.txt | tail -1 | tr -d '[[:space:]]')
3237
# Token should be present
3338
if [ -z $OTP_TOKEN ]; then
3439
abort "QR Emergency Code not detected"
3540
fi
3641

3742
# Store authentication credentials in config file and tell openvpn to use them
38-
echo -e "$OTP_USER\n$OTP_TOKEN" > client/credentials.txt
43+
echo -e "$OTP_USER\n$OTP_TOKEN" > $CLIENT_DIR/credentials.txt
3944

4045
# Override the auth-user-pass directive to use a credentials file
41-
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT | sed 's/auth-user-pass/auth-user-pass \/client\/credentials.txt/' | tee client/config.ovpn
46+
docker run --volumes-from $OVPN_DATA --rm $IMG ovpn_getclient $CLIENT | sed 's/auth-user-pass/auth-user-pass \/client\/credentials.txt/' | tee $CLIENT_DIR/config.ovpn
4247

4348
#
4449
# Fire up the server
@@ -52,14 +57,14 @@ docker run --name "ovpn-test" --volumes-from $OVPN_DATA --rm -p 1194:1194/udp --
5257
# SERV_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}')
5358
# test -n "$SERV_IP" && break
5459
#done
55-
#sed -ie s:SERV_IP:$SERV_IP:g client/config.ovpn
60+
#sed -ie s:SERV_IP:$SERV_IP:g $CLIENT_DIR/config.ovpn
5661

5762
#
5863
# Fire up a client in a container since openvpn is disallowed by Travis-CI, don't NAT
5964
# the host as it confuses itself:
6065
# "Incoming packet rejected from [AF_INET]172.17.42.1:1194[2], expected peer address: [AF_INET]10.240.118.86:1194"
6166
#
62-
docker run --rm --net=host --privileged --volume $PWD/client:/client $IMG /client/wait-for-connect.sh
67+
docker run --rm --net=host --privileged --volume $CLIENT_DIR:/client $IMG /client/wait-for-connect.sh
6368

6469
#
6570
# Client either connected or timed out, kill server

0 commit comments

Comments
 (0)