Index: etc/mtree/BSD.tests.dist =================================================================== --- etc/mtree/BSD.tests.dist +++ etc/mtree/BSD.tests.dist @@ -440,6 +440,8 @@ files .. .. + ping6 + .. .. secure lib Index: sbin/ping6/Makefile =================================================================== --- sbin/ping6/Makefile +++ sbin/ping6/Makefile @@ -22,4 +22,7 @@ CFLAGS+=-DWITH_CASPER .endif +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include Index: sbin/ping6/tests/Makefile =================================================================== --- /dev/null +++ sbin/ping6/tests/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +PACKAGE=tests + +ATF_TESTS_SH+= ping6_test +${PACKAGE}FILES+= ping6_c3.out + +.include Index: sbin/ping6/tests/ping6_c3.out =================================================================== --- /dev/null +++ sbin/ping6/tests/ping6_c3.out @@ -0,0 +1,8 @@ +PING6(56=40+8+8 bytes) ::1 --> ::1 +16 bytes from ::1, icmp_seq=0 hlim=64 time= ms +16 bytes from ::1, icmp_seq=1 hlim=64 time= ms +16 bytes from ::1, icmp_seq=2 hlim=64 time= ms + +--- localhost ping6 statistics --- +3 packets transmitted, 3 packets received, 0.0% packet loss +round-trip min/avg/max/std-dev = /// ms Index: sbin/ping6/tests/ping6_test.sh =================================================================== --- /dev/null +++ sbin/ping6/tests/ping6_test.sh @@ -0,0 +1,22 @@ +atf_test_case ping6_c3 +ping6_c3_head() { + atf_set "descr" "Stop after receiving 3 ECHO_RESPONSE packets" +} +ping6_c3_body() { + if ! getaddrinfo -f inet6 localhost 1>/dev/null 2>&1; then + atf_skip "IPv6 is not configured" + fi + atf_check -s exit:0 -o save:std.out -e empty \ + ping6 -c 3 localhost + check_ping_statistics std.out $(atf_get_srcdir)/ping6_c3.out +} + +atf_init_test_cases() { + atf_add_test_case ping6_c3 +} + +check_ping_statistics() { + sed -e 's/0.[0-9]\{3\}//g' \ + -e 's/[1-9][0-9]*.[0-9]\{3\}//g' "$1" >"$1".no_times + atf_check -s exit:0 diff "$1".no_times "$2" +}