blob: da939f41d11bf15e7517ff71dcf163e75e43ad62 [file] [log] [blame]
Dean Troyerd4f69b22013-07-24 12:24:43 -05001#!/usr/bin/env bash
2
3# Tests for DevStack functions
4# address_in_net()
5
6TOP=$(cd $(dirname "$0")/.. && pwd)
7
8# Import common functions
9source $TOP/functions
10
Ian Wienandf56348b2015-04-17 12:58:56 +100011source $TOP/tests/unittest.sh
Dean Troyerd4f69b22013-07-24 12:24:43 -050012
13echo "Testing IP addr functions"
14
Mahitod82d3f12015-05-22 10:37:23 -070015function test_cidr2netmask {
16 local mask=0
17 local ips="128 192 224 240 248 252 254 255"
18 local ip
19 local msg
20
21 msg="cidr2netmask(/0) == 0.0.0.0"
22 assert_equal "0.0.0.0" $(cidr2netmask $mask) "$msg"
23
24 for ip in $ips; do
25 mask=$(( mask + 1 ))
26 msg="cidr2netmask(/$mask) == $ip.0.0.0"
27 assert_equal "$ip.0.0.0" $(cidr2netmask $mask) "$msg"
28 done
29
30 for ip in $ips; do
31 mask=$(( mask + 1 ))
32 msg="cidr2netmask(/$mask) == 255.$ip.0.0"
33 assert_equal "255.$ip.0.0" $(cidr2netmask $mask) "$msg"
34 done
35
36 for ip in $ips; do
37 mask=$(( mask + 1 ))
38 msg="cidr2netmask(/$mask) == 255.255.$ip.0"
39 assert_equal "255.255.$ip.0" $(cidr2netmask $mask) "$msg"
40 done
41
42 for ip in $ips; do
43 mask=$(( mask + 1 ))
44 msg="cidr2netmask(/$mask) == 255.255.255.$ip"
45 assert_equal "255.255.255.$ip" $(cidr2netmask $mask) "$msg"
46 done
47}
48
49test_cidr2netmask
Dean Troyerd4f69b22013-07-24 12:24:43 -050050
Ian Wienanddd363a12015-05-25 11:50:32 +100051msg="maskip(169.254.169.254 240.0.0.0) == 160.0.0.0"
52assert_equal $(maskip 169.254.169.254 240.0.0.0) 160.0.0.0 "$msg"
53
54msg="maskip(169.254.169.254 255.0.0.0) == 169.0.0.0"
55assert_equal $(maskip 169.254.169.254 255.0.0.0) 169.0.0.0 "$msg"
56
57msg="maskip(169.254.169.254 255.240.0.0) == 169.240.0.0"
58assert_equal $(maskip 169.254.169.254 255.240.0.0) 169.240.0.0 "$msg"
59
60msg="maskip(169.254.169.254 255.255.0.0) == 169.254.0.0"
61assert_equal $(maskip 169.254.169.254 255.255.0.0) 169.254.0.0 "$msg"
62
63msg="maskip(169.254.169.254 255.255.240.0) == 169.254.160.0"
64assert_equal $(maskip 169.254.169.254 255.255.240.0) 169.254.160.0 "$msg"
65
66msg="maskip(169.254.169.254 255.255.255.0) == 169.254.169.0"
67assert_equal $(maskip 169.254.169.254 255.255.255.0) 169.254.169.0 "$msg"
68
69msg="maskip(169.254.169.254 255.255.255.240) == 169.254.169.240"
70assert_equal $(maskip 169.254.169.254 255.255.255.240) 169.254.169.240 "$msg"
71
72msg="maskip(169.254.169.254 255.255.255.255) == 169.254.169.254"
73assert_equal $(maskip 169.254.169.254 255.255.255.255) 169.254.169.254 "$msg"
74
Dean Troyerd4f69b22013-07-24 12:24:43 -050075
76for mask in 8 12 16 20 24 26 28; do
Ian Wienanddd363a12015-05-25 11:50:32 +100077 msg="address_in_net($10.10.10.1 10.10.10.0/$mask)"
Dean Troyerd4f69b22013-07-24 12:24:43 -050078 if address_in_net 10.10.10.1 10.10.10.0/$mask; then
Ian Wienanddd363a12015-05-25 11:50:32 +100079 passed "$msg"
Dean Troyerd4f69b22013-07-24 12:24:43 -050080 else
Ian Wienanddd363a12015-05-25 11:50:32 +100081 failed "$msg"
Dean Troyerd4f69b22013-07-24 12:24:43 -050082 fi
83
Ian Wienanddd363a12015-05-25 11:50:32 +100084 msg="! address_in_net($10.10.10.1 11.11.11.0/$mask)"
Dean Troyerd4f69b22013-07-24 12:24:43 -050085 if ! address_in_net 10.10.10.1 11.11.11.0/$mask; then
Ian Wienanddd363a12015-05-25 11:50:32 +100086 passed "$msg"
Dean Troyerd4f69b22013-07-24 12:24:43 -050087 else
Ian Wienanddd363a12015-05-25 11:50:32 +100088 failed "$msg"
Dean Troyerd4f69b22013-07-24 12:24:43 -050089 fi
90done
Ian Wienandf56348b2015-04-17 12:58:56 +100091
92report_results