diff --git a/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh b/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh index 6d08e24a9fbd..323a6e56acbf 100755 --- a/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh +++ b/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh @@ -1,4 +1,4 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh # # CDDL HEADER START # @@ -36,14 +36,14 @@ # 4. An unlikely race causes the unlocked global send/receive # variables to be corrupted. # -# This test sends a UDP message using ping and checks that at least the +# This test sends a UDP message using perl and checks that at least the # following counts were traced: # -# 1 x ip:::send (UDP sent to ping's base UDP port) -# 1 x udp:::send (UDP sent to ping's base UDP port) +# 1 x ip:::send (UDP sent to UDP port 33434) +# 1 x udp:::send (UDP sent to UDP port 33434) # 1 x ip:::receive (UDP received) # -# No udp:::receive event is expected as the response ping -U elicits is +# No udp:::receive event is expected since the UDP packet elicts # an ICMP PORT_UNREACHABLE response rather than a UDP packet, and locally # the echo request UDP packet only reaches IP, so the udp:::receive probe # is not triggered by it. @@ -56,8 +56,25 @@ fi dtrace=$1 local=127.0.0.1 +port=33434 +DIR=/var/tmp/dtest.$$ -$dtrace -c "/sbin/ping -U $local" -qs /dev/stdin < test.pl <<-EOPERL + use IO::Socket; + my \$s = IO::Socket::INET->new( + Proto => "udp", + PeerAddr => "$local", + PeerPort => $port); + die "Could not create UDP socket $local port $port" unless \$s; + send \$s, "Hello", 0; + close \$s; + sleep(2); +EOPERL + +$dtrace -c 'perl test.pl' -qs /dev/stdin <= 1 ? "yes" : "no"); printf("udp:::send - %s\n", udpsend >= 1 ? "yes" : "no"); } -EOF +EODTRACE + +status=$? + +cd / +/bin/rm -rf $DIR + +exit $status diff --git a/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh b/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh index cc7a32c556b1..e16034c95c4d 100755 --- a/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh +++ b/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh @@ -1,4 +1,4 @@ -#!/usr/bin/ksh +#!/usr/bin/env ksh93 # # CDDL HEADER START # @@ -36,7 +36,7 @@ # 4. An unlikely race causes the unlocked global send/receive # variables to be corrupted. # -# This test sends a UDP message using ping and checks that at least the +# This test sends a UDP message using perl and checks that at least the # following counts were traced: # # 1 x ip:::send (UDP sent to ping's base UDP port) @@ -50,6 +50,8 @@ fi dtrace=$1 getaddr=./get.ipv4remote.pl +port=33434 +DIR=/var/tmp/dtest.$$ if [[ ! -x $getaddr ]]; then print -u2 "could not find or execute sub program: $getaddr" @@ -60,7 +62,22 @@ if (( $? != 0 )); then exit 4 fi -$dtrace -c "/sbin/ping -U $dest" -qs /dev/stdin < test.pl <<-EOPERL + use IO::Socket; + my \$s = IO::Socket::INET->new( + Proto => "udp", + PeerAddr => "$dest", + PeerPort => $port); + die "Could not create UDP socket $dest port $port" unless \$s; + send \$s, "Hello", 0; + close \$s; + sleep(2); +EOPERL + +$dtrace -c 'perl test.pl' -qs /dev/stdin <= 1 ? "yes" : "no"); printf("udp:::send - %s\n", udpsend >= 1 ? "yes" : "no"); } -EOF +EODTRACE + +status=$? + +cd / +/bin/rm -rf $DIR + +exit $status diff --git a/cddl/usr.sbin/dtrace/tests/tools/exclude.sh b/cddl/usr.sbin/dtrace/tests/tools/exclude.sh index 120709acf807..e9c23befcd55 100755 --- a/cddl/usr.sbin/dtrace/tests/tools/exclude.sh +++ b/cddl/usr.sbin/dtrace/tests/tools/exclude.sh @@ -33,7 +33,6 @@ exclude EXFAIL common/funcs/tst.copyin.d exclude EXFAIL common/funcs/tst.copyinto.d exclude EXFAIL common/funcs/tst.ddi_pathname.d exclude EXFAIL common/io/tst.fds.d -exclude EXFAIL common/ip/tst.ipv4localudp.ksh exclude EXFAIL common/mdb/tst.dtracedcmd.ksh exclude EXFAIL common/misc/tst.dofmax.ksh exclude EXFAIL common/misc/tst.include.ksh