242e6e2ab3c7645a16d75ab4445d574e3c2d86d7
[scripts.git] / test-swaks.sh
1 #!/bin/bash
2
3 local='dummy@bitmask.net'
4 nobody_local='fooooooo@bitmask.net'
5 external='dummy@leap.se'
6 server='leech.bitmask.net'
7 exit_code=0
8
9 # override $server with possible exported shell var
10 [ $SWAKS_SERVER ] && server=$SWAKS_SERVER
11
12 swaks_options="--timeout 5 --server $server --hide-informational --suppress-data"
13 swaks_auth="--tlsc --tls-cert $HOME/leap/test/certs/cert.crt --tls-key $HOME/leap/test/certs/cert.key"
14
15 echo "swaks_options: $swaks_options"
16 echo "swaks_auth   : $swaks_auth"
17 echo
18
19 test_swaks() {
20   local from=$1
21   shift
22   local to=$1
23   shift
24   local expected_repsonse_code=$1
25   shift
26   local options="$@"
27
28   response=`swaks -f $from -t $to $options | tail -3 | head -1`
29   response_code=`echo "$response"| cut -d' ' -f 2-|sed 's/^ //g'|cut -d' ' -f 1 `
30   if [ "$response_code" == "$expected_repsonse_code" ]
31   then
32     echo -n 'OK:      '
33   else
34     echo -n 'WARNING: '
35     exit_code=1
36   fi
37   echo "From $from, to $to, no   authentication: $response"
38 }
39
40
41 test_delivery() {
42   local from=$1
43   local to=$2
44   local unauth_repsonse_code=$3
45   local auth_response_code=$4 
46
47   test_swaks $from $to $unauth_repsonse_code $swaks_options 
48   test_swaks $from $to $auth_response_code $swaks_options $swaks_auth 
49
50   echo
51 }
52
53 test_delivery $local $local 250 250
54 test_delivery $local $nobody_local 550 550
55 test_delivery $local $external 554 250
56
57 echo
58
59 test_delivery $nobody_local $local 250 250
60 test_delivery $nobody_local $nobody_local 550 550
61 test_delivery $nobody_local $external 554 250
62
63 echo
64
65 test_delivery $external $local 250 250
66 test_delivery $external $nobody_local 550 550
67 test_delivery $external $external 554 250
68
69 exit $exit_code