Index: etc/mtree/BSD.tests.dist =================================================================== --- etc/mtree/BSD.tests.dist +++ etc/mtree/BSD.tests.dist @@ -442,6 +442,8 @@ .. ping .. + ping6 + .. .. secure lib Index: sbin/ping6/Makefile =================================================================== --- sbin/ping6/Makefile +++ sbin/ping6/Makefile @@ -21,4 +21,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_c1_s8_X1.out + +.include Index: sbin/ping6/tests/ping6_c1_s8_X1.out =================================================================== --- /dev/null +++ sbin/ping6/tests/ping6_c1_s8_X1.out @@ -0,0 +1,6 @@ +PING6(56=40+8+8 bytes) ::1 --> ::1 +16 bytes from ::1, icmp_seq=0 hlim= time= ms + +--- localhost ping6 statistics --- +1 packets transmitted, 1 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,24 @@ +atf_test_case ping6_c1_s8_X1 +ping6_c1_s8_X1_head() { + atf_set "descr" "Stop after receiving 1 ECHO_RESPONSE packet" +} +ping6_c1_s8_X1_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 1 -s 8 -X 1 localhost + check_ping_statistics std.out $(atf_get_srcdir)/ping6_c1_s8_X1.out +} + +atf_init_test_cases() { + atf_add_test_case ping6_c1_s8_X1 +} + +check_ping_statistics() { + sed -e 's/0.[0-9]\{3\}//g' \ + -e 's/[1-9][0-9]*.[0-9]\{3\}//g' \ + -e 's/hlim=[0-9][0-9]*/hlim=/' \ + "$1" >"$1".filtered + atf_check -s exit:0 diff -u "$1".filtered "$2" +}