17cc426fbSAlan Somers# 27cc426fbSAlan Somers# SPDX-License-Identifier: BSD-2-Clause-FreeBSD 37cc426fbSAlan Somers# 47cc426fbSAlan Somers# Copyright (C) 2019 Jan Sucan <jansucan@FreeBSD.org> 57cc426fbSAlan Somers# All rights reserved. 67cc426fbSAlan Somers# 77cc426fbSAlan Somers# Redistribution and use in source and binary forms, with or without 87cc426fbSAlan Somers# modification, are permitted provided that the following conditions 97cc426fbSAlan Somers# are met: 107cc426fbSAlan Somers# 1. Redistributions of source code must retain the above copyright 117cc426fbSAlan Somers# notice, this list of conditions and the following disclaimer. 127cc426fbSAlan Somers# 2. Redistributions in binary form must reproduce the above copyright 137cc426fbSAlan Somers# notice, this list of conditions and the following disclaimer in the 147cc426fbSAlan Somers# documentation and/or other materials provided with the distribution. 157cc426fbSAlan Somers# 167cc426fbSAlan Somers# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 177cc426fbSAlan Somers# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 187cc426fbSAlan Somers# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 197cc426fbSAlan Somers# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 207cc426fbSAlan Somers# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 217cc426fbSAlan Somers# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 227cc426fbSAlan Somers# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 237cc426fbSAlan Somers# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 247cc426fbSAlan Somers# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 257cc426fbSAlan Somers# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 267cc426fbSAlan Somers# SUCH DAMAGE. 277cc426fbSAlan Somers# 287cc426fbSAlan Somers# $FreeBSD$ 297cc426fbSAlan Somers 307cc426fbSAlan Somersatf_test_case ping_c1_s56_t1 317cc426fbSAlan Somersping_c1_s56_t1_head() { 327cc426fbSAlan Somers atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet" 337cc426fbSAlan Somers} 347cc426fbSAlan Somersping_c1_s56_t1_body() { 357cc426fbSAlan Somers if ! getaddrinfo -f inet localhost 1>/dev/null 2>&1; then 367cc426fbSAlan Somers atf_skip "IPv4 is not configured" 377cc426fbSAlan Somers fi 387cc426fbSAlan Somers atf_check -s exit:0 -o save:std.out -e empty \ 39*3cde9171SAlan Somers ping -4 -c 1 -s 56 -t 1 localhost 407cc426fbSAlan Somers check_ping_statistics std.out $(atf_get_srcdir)/ping_c1_s56_t1.out 417cc426fbSAlan Somers} 427cc426fbSAlan Somers 43*3cde9171SAlan Somersatf_test_case ping_6_c1_s8_t1 44*3cde9171SAlan Somersping_6_c1_s8_t1_head() { 45*3cde9171SAlan Somers atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet" 46*3cde9171SAlan Somers} 47*3cde9171SAlan Somersping_6_c1_s8_t1_body() { 48*3cde9171SAlan Somers if ! getaddrinfo -f inet6 localhost 1>/dev/null 2>&1; then 49*3cde9171SAlan Somers atf_skip "IPv6 is not configured" 50*3cde9171SAlan Somers fi 51*3cde9171SAlan Somers atf_check -s exit:0 -o save:std.out -e empty \ 52*3cde9171SAlan Somers ping -6 -c 1 -s 8 -t 1 localhost 53*3cde9171SAlan Somers check_ping_statistics std.out $(atf_get_srcdir)/ping_6_c1_s8_t1.out 54*3cde9171SAlan Somers} 55*3cde9171SAlan Somers 567cc426fbSAlan Somersatf_init_test_cases() { 577cc426fbSAlan Somers atf_add_test_case ping_c1_s56_t1 58*3cde9171SAlan Somers atf_add_test_case ping_6_c1_s8_t1 597cc426fbSAlan Somers} 607cc426fbSAlan Somers 617cc426fbSAlan Somerscheck_ping_statistics() { 627cc426fbSAlan Somers sed -e 's/0.[0-9]\{3\}//g' \ 637cc426fbSAlan Somers -e 's/[1-9][0-9]*.[0-9]\{3\}//g' \ 647cc426fbSAlan Somers -e 's/localhost ([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{1,3\})/localhost/' \ 657cc426fbSAlan Somers -e 's/from [0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{1,3\}/from/' \ 667cc426fbSAlan Somers -e 's/ttl=[0-9][0-9]*/ttl=/' \ 67*3cde9171SAlan Somers -e 's/hlim=[0-9][0-9]*/hlim=/' \ 687cc426fbSAlan Somers "$1" >"$1".filtered 697cc426fbSAlan Somers atf_check -s exit:0 diff -u "$1".filtered "$2" 707cc426fbSAlan Somers} 71