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