|  | #!/usr/bin/env bash | 
|  |  | 
|  | # Tests for DevStack functions | 
|  | # address_in_net() | 
|  |  | 
|  | TOP=$(cd $(dirname "$0")/.. && pwd) | 
|  |  | 
|  | # Import common functions | 
|  | source $TOP/functions | 
|  |  | 
|  | source $TOP/tests/unittest.sh | 
|  |  | 
|  | echo "Testing IP addr functions" | 
|  |  | 
|  | function test_cidr2netmask { | 
|  | local mask=0 | 
|  | local ips="128 192 224 240 248 252 254 255" | 
|  | local ip | 
|  | local msg | 
|  |  | 
|  | msg="cidr2netmask(/0) == 0.0.0.0" | 
|  | assert_equal "0.0.0.0" $(cidr2netmask $mask) "$msg" | 
|  |  | 
|  | for ip in $ips; do | 
|  | mask=$(( mask + 1 )) | 
|  | msg="cidr2netmask(/$mask) == $ip.0.0.0" | 
|  | assert_equal "$ip.0.0.0" $(cidr2netmask $mask) "$msg" | 
|  | done | 
|  |  | 
|  | for ip in $ips; do | 
|  | mask=$(( mask + 1 )) | 
|  | msg="cidr2netmask(/$mask) == 255.$ip.0.0" | 
|  | assert_equal "255.$ip.0.0" $(cidr2netmask $mask) "$msg" | 
|  | done | 
|  |  | 
|  | for ip in $ips; do | 
|  | mask=$(( mask + 1 )) | 
|  | msg="cidr2netmask(/$mask) == 255.255.$ip.0" | 
|  | assert_equal "255.255.$ip.0" $(cidr2netmask $mask) "$msg" | 
|  | done | 
|  |  | 
|  | for ip in $ips; do | 
|  | mask=$(( mask + 1 )) | 
|  | msg="cidr2netmask(/$mask) == 255.255.255.$ip" | 
|  | assert_equal "255.255.255.$ip" $(cidr2netmask $mask) "$msg" | 
|  | done | 
|  | } | 
|  |  | 
|  | test_cidr2netmask | 
|  |  | 
|  | msg="maskip(169.254.169.254 240.0.0.0) == 160.0.0.0" | 
|  | assert_equal $(maskip 169.254.169.254 240.0.0.0) 160.0.0.0 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.0.0.0) == 169.0.0.0" | 
|  | assert_equal $(maskip 169.254.169.254 255.0.0.0) 169.0.0.0 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.240.0.0) == 169.240.0.0" | 
|  | assert_equal $(maskip 169.254.169.254 255.240.0.0) 169.240.0.0 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.255.0.0) == 169.254.0.0" | 
|  | assert_equal $(maskip 169.254.169.254 255.255.0.0) 169.254.0.0 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.255.240.0) == 169.254.160.0" | 
|  | assert_equal $(maskip 169.254.169.254 255.255.240.0) 169.254.160.0 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.255.255.0) == 169.254.169.0" | 
|  | assert_equal $(maskip 169.254.169.254 255.255.255.0) 169.254.169.0 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.255.255.240) == 169.254.169.240" | 
|  | assert_equal $(maskip 169.254.169.254 255.255.255.240) 169.254.169.240 "$msg" | 
|  |  | 
|  | msg="maskip(169.254.169.254 255.255.255.255) == 169.254.169.254" | 
|  | assert_equal $(maskip 169.254.169.254 255.255.255.255) 169.254.169.254 "$msg" | 
|  |  | 
|  |  | 
|  | for mask in 8 12 16 20 24 26 28; do | 
|  | msg="address_in_net($10.10.10.1 10.10.10.0/$mask)" | 
|  | if address_in_net 10.10.10.1 10.10.10.0/$mask; then | 
|  | passed "$msg" | 
|  | else | 
|  | failed "$msg" | 
|  | fi | 
|  |  | 
|  | msg="! address_in_net($10.10.10.1 11.11.11.0/$mask)" | 
|  | if ! address_in_net 10.10.10.1 11.11.11.0/$mask; then | 
|  | passed "$msg" | 
|  | else | 
|  | failed "$msg" | 
|  | fi | 
|  | done | 
|  |  | 
|  | report_results |