#!/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 if [[ $(maskip 169.254.169.254 240.0.0.0) == 160.0.0.0 ]]; then passed "maskip(): /4...OK" else failed "maskip(): /4...failed" fi if [[ $(maskip 169.254.169.254 255.0.0.0) == 169.0.0.0 ]]; then passed "maskip(): /8...OK" else failed "maskip(): /8...failed" fi if [[ $(maskip 169.254.169.254 255.240.0.0) == 169.240.0.0 ]]; then passed "maskip(): /12...OK" else failed "maskip(): /12...failed" fi if [[ $(maskip 169.254.169.254 255.255.0.0) == 169.254.0.0 ]]; then passed "maskip(): /16...OK" else failed "maskip(): /16...failed" fi if [[ $(maskip 169.254.169.254 255.255.240.0) == 169.254.160.0 ]]; then passed "maskip(): /20...OK" else failed "maskip(): /20...failed" fi if [[ $(maskip 169.254.169.254 255.255.255.0) == 169.254.169.0 ]]; then passed "maskip(): /24...OK" else failed "maskip(): /24...failed" fi if [[ $(maskip 169.254.169.254 255.255.255.240) == 169.254.169.240 ]]; then passed "maskip(): /28...OK" else failed "maskip(): /28...failed" fi if [[ $(maskip 169.254.169.254 255.255.255.255) == 169.254.169.254 ]]; then passed "maskip(): /32...OK" else failed "maskip(): /32...failed" fi for mask in 8 12 16 20 24 26 28; do echo -n "address_in_net(): in /$mask..." if address_in_net 10.10.10.1 10.10.10.0/$mask; then passed "OK" else failed "address_in_net() failed on /$mask" fi echo -n "address_in_net(): not in /$mask..." if ! address_in_net 10.10.10.1 11.11.11.0/$mask; then passed "OK" else failed "address_in_net() failed on /$mask" fi done report_results