Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | |
| 3 | # Tests for DevStack functions |
| 4 | # address_in_net() |
| 5 | |
| 6 | TOP=$(cd $(dirname "$0")/.. && pwd) |
| 7 | |
| 8 | # Import common functions |
| 9 | source $TOP/functions |
| 10 | |
Ian Wienand | f56348b | 2015-04-17 12:58:56 +1000 | [diff] [blame] | 11 | source $TOP/tests/unittest.sh |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 12 | |
| 13 | echo "Testing IP addr functions" |
| 14 | |
Mahito | d82d3f1 | 2015-05-22 10:37:23 -0700 | [diff] [blame] | 15 | function 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 | |
| 49 | test_cidr2netmask |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 50 | |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 51 | msg="maskip(169.254.169.254 240.0.0.0) == 160.0.0.0" |
| 52 | assert_equal $(maskip 169.254.169.254 240.0.0.0) 160.0.0.0 "$msg" |
| 53 | |
| 54 | msg="maskip(169.254.169.254 255.0.0.0) == 169.0.0.0" |
| 55 | assert_equal $(maskip 169.254.169.254 255.0.0.0) 169.0.0.0 "$msg" |
| 56 | |
| 57 | msg="maskip(169.254.169.254 255.240.0.0) == 169.240.0.0" |
| 58 | assert_equal $(maskip 169.254.169.254 255.240.0.0) 169.240.0.0 "$msg" |
| 59 | |
| 60 | msg="maskip(169.254.169.254 255.255.0.0) == 169.254.0.0" |
| 61 | assert_equal $(maskip 169.254.169.254 255.255.0.0) 169.254.0.0 "$msg" |
| 62 | |
| 63 | msg="maskip(169.254.169.254 255.255.240.0) == 169.254.160.0" |
| 64 | assert_equal $(maskip 169.254.169.254 255.255.240.0) 169.254.160.0 "$msg" |
| 65 | |
| 66 | msg="maskip(169.254.169.254 255.255.255.0) == 169.254.169.0" |
| 67 | assert_equal $(maskip 169.254.169.254 255.255.255.0) 169.254.169.0 "$msg" |
| 68 | |
| 69 | msg="maskip(169.254.169.254 255.255.255.240) == 169.254.169.240" |
| 70 | assert_equal $(maskip 169.254.169.254 255.255.255.240) 169.254.169.240 "$msg" |
| 71 | |
| 72 | msg="maskip(169.254.169.254 255.255.255.255) == 169.254.169.254" |
| 73 | assert_equal $(maskip 169.254.169.254 255.255.255.255) 169.254.169.254 "$msg" |
| 74 | |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 75 | |
| 76 | for mask in 8 12 16 20 24 26 28; do |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 77 | msg="address_in_net($10.10.10.1 10.10.10.0/$mask)" |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 78 | if address_in_net 10.10.10.1 10.10.10.0/$mask; then |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 79 | passed "$msg" |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 80 | else |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 81 | failed "$msg" |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 82 | fi |
| 83 | |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 84 | msg="! address_in_net($10.10.10.1 11.11.11.0/$mask)" |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 85 | if ! address_in_net 10.10.10.1 11.11.11.0/$mask; then |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 86 | passed "$msg" |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 87 | else |
Ian Wienand | dd363a1 | 2015-05-25 11:50:32 +1000 | [diff] [blame] | 88 | failed "$msg" |
Dean Troyer | d4f69b2 | 2013-07-24 12:24:43 -0500 | [diff] [blame] | 89 | fi |
| 90 | done |
Ian Wienand | f56348b | 2015-04-17 12:58:56 +1000 | [diff] [blame] | 91 | |
| 92 | report_results |