Add cleanup hook for integration tests
[tinc] / test / sptps-basic.test
1 #!/bin/sh
2
3 # shellcheck source=testlib.sh
4 . ./testlib.sh
5
6 echo [STEP] Skip this test if we did not compile sptps_test
7
8 test -e "$SPTPS_TEST" -a -e "$SPTPS_KEYPAIR" || exit $EXIT_SKIP_TEST
9
10 port=30080
11
12 server_priv="$DIR_FOO/server.priv"
13 client_priv="$DIR_FOO/client.priv"
14 server_pub="$DIR_FOO/server.pub"
15 client_pub="$DIR_FOO/client.pub"
16
17 echo [STEP] Generate keys
18
19 mkdir -p "$DIR_FOO"
20 $SPTPS_KEYPAIR "$server_priv" "$server_pub"
21 $SPTPS_KEYPAIR "$client_priv" "$client_pub"
22
23 echo [STEP] Test transfer of a simple file
24
25 reference=testlib.sh
26
27 (
28   sleep 3
29   $SPTPS_TEST -4 -q "$client_priv" "$server_pub" localhost $port <"$reference"
30 ) &
31
32 $SPTPS_TEST -4 "$server_priv" "$client_pub" $port >"$DIR_FOO/out1"
33 diff -w "$DIR_FOO/out1" "$reference"
34
35 $SPTPS_TEST -4 -q "$server_priv" "$client_pub" $port <"$reference" &
36 sleep 3
37 $SPTPS_TEST -4 "$client_priv" "$server_pub" localhost $port >"$DIR_FOO/out2"
38 diff -w "$DIR_FOO/out2" "$reference"
39
40 echo [STEP] Datagram mode
41
42 $SPTPS_TEST -4 -dq "$server_priv" "$client_pub" $port <"$reference" &
43 sleep 3
44 sleep 3 | $SPTPS_TEST -4 -dq "$client_priv" "$server_pub" localhost $port >"$DIR_FOO/out3"
45 diff -w "$DIR_FOO/out3" "$reference"