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# $FreeBSD$ 33 34atf_test_case static_ipv4_loopback_route_for_each_fib cleanup 35static_ipv4_loopback_route_for_each_fib_head() 36{ 37 atf_set "descr" "Every FIB should have a static IPv4 loopback route" 38} 39static_ipv4_loopback_route_for_each_fib_body() 40{ 41 local nfibs fib 42 nfibs=`sysctl -n net.fibs` 43 44 # Check for an IPv4 loopback route 45 for fib in `seq 0 $((${nfibs} - 1))`; do 46 atf_check -o match:"interface: lo0" -s exit:0 \ 47 setfib -F ${fib} route -4 get 127.0.0.1 48 done 49} 50 51atf_test_case static_ipv6_loopback_route_for_each_fib cleanup 52static_ipv6_loopback_route_for_each_fib_head() 53{ 54 atf_set "descr" "Every FIB should have a static IPv6 loopback route" 55} 56static_ipv6_loopback_route_for_each_fib_body() 57{ 58 local nfibs fib 59 nfibs=`sysctl -n net.fibs` 60 61 if [ "`sysctl -in kern.features.inet6`" != "1" ]; then 62 atf_skip "This test requires IPv6 support" 63 fi 64 65 # Check for an IPv6 loopback route 66 for fib in `seq 0 $((${nfibs} - 1))`; do 67 atf_check -o match:"interface: lo0" -s exit:0 \ 68 setfib -F ${fib} route -6 get ::1 69 done 70} 71 72atf_init_test_cases() 73{ 74 atf_add_test_case static_ipv4_loopback_route_for_each_fib 75 atf_add_test_case static_ipv6_loopback_route_for_each_fib 76} 77 78