1# 2# Copyright (c) 2014 Spectra Logic Corporation 3# All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions, and the following disclaimer, 10# without modification. 11# 2. Redistributions in binary form must reproduce at minimum a disclaimer 12# substantially similar to the "NO WARRANTY" disclaimer below 13# ("Disclaimer") and any redistribution must be conditioned upon 14# including a substantially similar Disclaimer requirement for further 15# binary redistribution. 16# 17# NO WARRANTY 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 21# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22# HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 26# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 27# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28# POSSIBILITY OF SUCH DAMAGES. 29# 30# Authors: Alan Somers (Spectra Logic Corporation) 31# 32 33atf_test_case static_ipv4_loopback_route_for_each_fib cleanup 34static_ipv4_loopback_route_for_each_fib_head() 35{ 36 atf_set "descr" "Every FIB should have a static IPv4 loopback route" 37} 38static_ipv4_loopback_route_for_each_fib_body() 39{ 40 local nfibs fib 41 nfibs=`sysctl -n net.fibs` 42 43 # Check for an IPv4 loopback route 44 for fib in `seq 0 $((${nfibs} - 1))`; do 45 atf_check -o match:"interface: lo0" -s exit:0 \ 46 setfib -F ${fib} route -4 get 127.0.0.1 47 done 48} 49 50atf_test_case static_ipv6_loopback_route_for_each_fib cleanup 51static_ipv6_loopback_route_for_each_fib_head() 52{ 53 atf_set "descr" "Every FIB should have a static IPv6 loopback route" 54} 55static_ipv6_loopback_route_for_each_fib_body() 56{ 57 local nfibs fib 58 nfibs=`sysctl -n net.fibs` 59 60 if [ "`sysctl -in kern.features.inet6`" != "1" ]; then 61 atf_skip "This test requires IPv6 support" 62 fi 63 64 # Check for an IPv6 loopback route 65 for fib in `seq 0 $((${nfibs} - 1))`; do 66 atf_check -o match:"interface: lo0" -s exit:0 \ 67 setfib -F ${fib} route -6 get ::1 68 done 69} 70 71atf_init_test_cases() 72{ 73 atf_add_test_case static_ipv4_loopback_route_for_each_fib 74 atf_add_test_case static_ipv6_loopback_route_for_each_fib 75} 76 77