| #!/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 |