fixed output to include authentication
[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  
38   [[ "$options" == *--tls* ]] && authentication='authenticated    ' || authentication='no authentication'
39   [  ]
40   echo "From $from, to $to, $authentication: $response"
41 }
42
43
44 test_delivery() {
45   local from=$1
46   local to=$2
47   local unauth_repsonse_code=$3
48   local auth_response_code=$4 
49
50   test_swaks $from $to $unauth_repsonse_code $swaks_options 
51   test_swaks $from $to $auth_response_code $swaks_options $swaks_auth 
52
53   echo
54 }
55
56
57 test_delivery $local $local 250 250
58 test_delivery $local $nobody_local 550 550
59 test_delivery $local $external 554 250
60
61 echo
62
63 test_delivery $nobody_local $local 250 250
64 test_delivery $nobody_local $nobody_local 550 550
65 test_delivery $nobody_local $external 554 250
66
67 echo
68
69 test_delivery $external $local 250 250
70 test_delivery $external $nobody_local 550 550
71 test_delivery $external $external 554 250
72
73 exit $exit_code