Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh (revision 336596) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh (revision 336597) @@ -1,138 +1,135 @@ #!/usr/bin/env ksh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. # # # Test {ip,tcp}:::{send,receive} of IPv4 TCP to local host. # # This may fail due to: # # 1. A change to the ip stack breaking expected probe behavior, # which is the reason we are testing. # 2. The lo0 interface missing or not up. # 3. An unlikely race causes the unlocked global send/receive # variables to be corrupted. # # This test performs a TCP connection and checks that at least the # following packet counts were traced: # -# 3 x ip:::send (2 during the TCP handshake, then a FIN) -# 3 x tcp:::send (2 during the TCP handshake, then a FIN) -# 2 x ip:::receive (1 during the TCP handshake, then the FIN ACK) -# 2 x tcp:::receive (1 during the TCP handshake, then the FIN ACK) +# 7 x ip:::send (3 during the setup, 4 during the teardown) +# 7 x tcp:::send (3 during the setup, 4 during the teardown) +# 7 x ip:::receive (3 during the setup, 4 during the teardown) +# 7 x tcp:::receive (3 during the setup, 4 during the teardown) -# The actual count tested is 5 each way, since we are tracing both +# The actual count tested is 7 each way, since we are tracing both # source and destination events. # -# For this test to work, we are assuming that the TCP handshake and -# TCP close will enter the IP code path and not use tcp fusion. -# if (( $# != 1 )); then print -u2 "expected one argument: " exit 2 fi dtrace=$1 local=127.0.0.1 DIR=/var/tmp/dtest.$$ tcpport=1024 bound=5000 while [ $tcpport -lt $bound ]; do nc -z $local $tcpport >/dev/null || break tcpport=$(($tcpport + 1)) done if [ $tcpport -eq $bound ]; then echo "couldn't find an available TCP port" exit 1 fi mkdir $DIR cd $DIR # nc will exit when the connection is closed. nc -l $local $tcpport & cat > test.pl <<-EOPERL use IO::Socket; my \$s = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$local", PeerPort => $tcpport, Timeout => 3); die "Could not connect to host $local port $tcpport" unless \$s; close \$s; sleep(2); EOPERL $dtrace -c 'perl test.pl' -qs /dev/stdin <ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipsend++; } tcp:::send /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local"/ { tcpsend++; } ip:::receive /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipreceive++; } tcp:::receive /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local"/ { tcpreceive++; } END { printf("Minimum TCP events seen\n\n"); - printf("ip:::send - %s\n", ipsend >= 5 ? "yes" : "no"); - printf("ip:::receive - %s\n", ipreceive >= 5 ? "yes" : "no"); - printf("tcp:::send - %s\n", tcpsend >= 5 ? "yes" : "no"); - printf("tcp:::receive - %s\n", tcpreceive >= 5 ? "yes" : "no"); + printf("ip:::send - %s\n", ipsend >= 7 ? "yes" : "no"); + printf("ip:::receive - %s\n", ipreceive >= 7 ? "yes" : "no"); + printf("tcp:::send - %s\n", tcpsend >= 7 ? "yes" : "no"); + printf("tcp:::receive - %s\n", tcpreceive >= 7 ? "yes" : "no"); } EODTRACE status=$? cd / /bin/rm -rf $DIR exit $status Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh (revision 336596) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh (revision 336597) @@ -1,129 +1,131 @@ #!/usr/bin/env ksh93 # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. # # # Test {tcp,ip}:::{send,receive} of IPv4 TCP to a remote host. # # This may fail due to: # # 1. A change to the ip stack breaking expected probe behavior, # which is the reason we are testing. # 2. No physical network interface is plumbed and up. # 3. No other hosts on this subnet are reachable and listening on ssh. # 4. An unlikely race causes the unlocked global send/receive # variables to be corrupted. # # This test performs a TCP connection and checks that at least the # following packet counts were traced: # -# 3 x ip:::send (2 during the TCP handshake, then a FIN) -# 3 x tcp:::send (2 during the TCP handshake, then a FIN) -# 2 x ip:::receive (1 during the TCP handshake, then the FIN ACK) -# 2 x tcp:::receive (1 during the TCP handshake, then the FIN ACK) -# +# 4 x ip:::send (2 during connection setup, 2 during connection teardown) +# 4 x tcp:::send (2 during connection setup, 2 during connection teardown) +# 5 x ip:::receive (1 during connection setup, the response, 1 window update, +# 1 banner line, 2 during connection teardown) +# 5 x tcp:::receive (1 during connection setup, the response, 1 window update, +# 1 banner line, 2 during connection teardown) if (( $# != 1 )); then print -u2 "expected one argument: " exit 2 fi dtrace=$1 getaddr=./get.ipv4remote.pl tcpport=22 DIR=/var/tmp/dtest.$$ if [[ ! -x $getaddr ]]; then print -u2 "could not find or execute sub program: $getaddr" exit 3 fi $getaddr $tcpport | read source dest if (( $? != 0 )); then exit 4 fi mkdir $DIR cd $DIR cat > test.pl <<-EOPERL use IO::Socket; my \$s = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$dest", PeerPort => $tcpport, Timeout => 3); die "Could not connect to host $dest port $tcpport" unless \$s; + readline \$s; close \$s; sleep(2); EOPERL $dtrace -c 'perl test.pl' -qs /dev/stdin <ip_saddr == "$source" && args[2]->ip_daddr == "$dest" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipsend++; } tcp:::send /args[2]->ip_saddr == "$source" && args[2]->ip_daddr == "$dest"/ { tcpsend++; } ip:::receive /args[2]->ip_saddr == "$dest" && args[2]->ip_daddr == "$source" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipreceive++; } tcp:::receive /args[2]->ip_saddr == "$dest" && args[2]->ip_daddr == "$source"/ { tcpreceive++; } END { printf("Minimum TCP events seen\n\n"); - printf("ip:::send - %s\n", ipsend >= 3 ? "yes" : "no"); - printf("ip:::receive - %s\n", ipreceive >= 2 ? "yes" : "no"); - printf("tcp:::send - %s\n", tcpsend >= 3 ? "yes" : "no"); - printf("tcp:::receive - %s\n", tcpreceive >= 2 ? "yes" : "no"); + printf("ip:::send - %s\n", ipsend >= 4 ? "yes" : "no"); + printf("ip:::receive - %s\n", ipreceive >= 5 ? "yes" : "no"); + printf("tcp:::send - %s\n", tcpsend >= 4 ? "yes" : "no"); + printf("tcp:::receive - %s\n", tcpreceive >= 5 ? "yes" : "no"); } EODTRACE status=$? cd / /bin/rm -rf $DIR exit $status Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localtcpstate.ksh =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localtcpstate.ksh (revision 336596) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.localtcpstate.ksh (revision 336597) @@ -1,194 +1,190 @@ #!/usr/bin/env ksh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. # # # Test tcp:::state-change and tcp:::{send,receive} by connecting to # the local ssh service and sending a test message. This should result # in a "Protocol mismatch" response and a close of the connection. # A number of state transition events along with tcp fusion send and # receive events for the message should result. # # This may fail due to: # # 1. A change to the ip stack breaking expected probe behavior, # which is the reason we are testing. # 2. The lo0 interface missing or not up. # 3. An unlikely race causes the unlocked global send/receive # variables to be corrupted. # # This test performs a TCP connection and checks that at least the # following packet counts were traced: # -# 3 x ip:::send (2 during the TCP handshake, then a FIN) -# 4 x tcp:::send (2 during the TCP handshake, 1 message then a FIN) -# 2 x ip:::receive (1 during the TCP handshake, then the FIN ACK) -# 3 x tcp:::receive (1 during the TCP handshake, 1 message then the FIN ACK) +# 7 x ip:::send (3 during the setup, 4 during the teardown) +# 7 x tcp:::send (3 during the setup, 4 during the teardown) +# 7 x ip:::receive (3 during the setup, 4 during the teardown) +# 7 x tcp:::receive (3 during the setup, 4 during the teardown) # -# The actual ip count tested is 5 each way, since we are tracing both -# source and destination events. The actual tcp count tested is 7 -# each way, since the TCP fusion send/receive events will not reach IP. +# The actual count tested is 7 each way, since we are tracing both +# source and destination events. # -# For this test to work, we are assuming that the TCP handshake and -# TCP close will enter the IP code path and not use tcp fusion. -# if (( $# != 1 )); then print -u2 "expected one argument: " exit 2 fi dtrace=$1 local=127.0.0.1 DIR=/var/tmp/dtest.$$ tcpport=1024 bound=5000 while [ $tcpport -lt $bound ]; do nc -z $local $tcpport >/dev/null || break tcpport=$(($tcpport + 1)) done if [ $tcpport -eq $bound ]; then echo "couldn't find an available TCP port" exit 1 fi mkdir $DIR cd $DIR # nc will exit when the connection is closed. nc -l $local $tcpport & cat > test.pl <<-EOPERL use IO::Socket; my \$s = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$local", PeerPort => $tcpport, Timeout => 3); die "Could not connect to host $local port $tcpport" unless \$s; close \$s; sleep(2); EOPERL $dtrace -c 'perl test.pl' -qs /dev/stdin <ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipsend++; } tcp:::send /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && (args[4]->tcp_sport == $tcpport || args[4]->tcp_dport == $tcpport)/ { tcpsend++; } ip:::receive /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipreceive++; } tcp:::receive /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && (args[4]->tcp_sport == $tcpport || args[4]->tcp_dport == $tcpport)/ { tcpreceive++; } tcp:::state-change { state_event[args[3]->tcps_state]++; } tcp:::connect-request /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->tcp_dport == $tcpport/ { connreq++; } tcp:::connect-established /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->tcp_sport == $tcpport/ { connest++; } tcp:::accept-established /args[2]->ip_saddr == "$local" && args[2]->ip_daddr == "$local" && args[4]->tcp_dport == $tcpport/ { connaccept++; } END { printf("Minimum TCP events seen\n\n"); - printf("ip:::send - %s\n", ipsend >= 5 ? "yes" : "no"); - printf("ip:::receive - %s\n", ipreceive >= 5 ? "yes" : "no"); + printf("ip:::send - %s\n", ipsend >= 7 ? "yes" : "no"); + printf("ip:::receive - %s\n", ipreceive >= 7 ? "yes" : "no"); printf("tcp:::send - %s\n", tcpsend >= 7 ? "yes" : "no"); printf("tcp:::receive - %s\n", tcpreceive >= 7 ? "yes" : "no"); printf("tcp:::state-change to syn-sent - %s\n", state_event[TCP_STATE_SYN_SENT] >=1 ? "yes" : "no"); printf("tcp:::state-change to syn-received - %s\n", state_event[TCP_STATE_SYN_RECEIVED] >=1 ? "yes" : "no"); printf("tcp:::state-change to established - %s\n", state_event[TCP_STATE_ESTABLISHED] >= 2 ? "yes" : "no"); printf("tcp:::state-change to fin-wait-1 - %s\n", state_event[TCP_STATE_FIN_WAIT_1] >= 1 ? "yes" : "no"); printf("tcp:::state-change to close-wait - %s\n", state_event[TCP_STATE_CLOSE_WAIT] >= 1 ? "yes" : "no"); printf("tcp:::state-change to fin-wait-2 - %s\n", state_event[TCP_STATE_FIN_WAIT_2] >= 1 ? "yes" : "no"); printf("tcp:::state-change to last-ack - %s\n", state_event[TCP_STATE_LAST_ACK] >= 1 ? "yes" : "no"); printf("tcp:::state-change to time-wait - %s\n", state_event[TCP_STATE_TIME_WAIT] >= 1 ? "yes" : "no"); printf("tcp:::connect-request - %s\n", connreq >=1 ? "yes" : "no"); printf("tcp:::connect-established - %s\n", connest >=1 ? "yes" : "no"); printf("tcp:::accept-established - %s\n", connaccept >=1 ? "yes" : "no"); } EODTRACE status=$? cd / /bin/rm -rf $DIR exit $status Index: head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.remotetcpstate.ksh =================================================================== --- head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.remotetcpstate.ksh (revision 336596) +++ head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.remotetcpstate.ksh (revision 336597) @@ -1,173 +1,172 @@ #!/usr/bin/env ksh93 # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. # # # Test tcp:::state-change and tcp:::{send,receive} by connecting to # the remote ssh service and sending a test message. This should result # in a "Protocol mismatch" response and a close of the connection. # A number of state transition events along with tcp send and receive # events for the message should result. # # This may fail due to: # # 1. A change to the ip stack breaking expected probe behavior, # which is the reason we are testing. # 2. The lo0 interface missing or not up. # 3. The remote ssh service is not online. # 4. An unlikely race causes the unlocked global send/receive # variables to be corrupted. # # This test performs a TCP connection to the ssh service (port 22) and # checks that at least the following packet counts were traced: # -# 4 x ip:::send (2 during the TCP handshake, the message, then a FIN) -# 4 x tcp:::send (2 during the TCP handshake, the messages, then a FIN) -# 3 x ip:::receive (1 during the TCP handshake, the response, then the FIN ACK) -# 3 x tcp:::receive (1 during the TCP handshake, the response, then the FIN ACK) +# 4 x ip:::send (2 during connection setup, 2 during connection teardown) +# 4 x tcp:::send (2 during connection setup, 2 during connection teardown) +# 5 x ip:::receive (1 during connection setup, the response, 1 window update, +# 1 banner line, 2 during connection teardown) +# 5 x tcp:::receive (1 during connection setup, the response, 1 window update, +# 1 banner line, 2 during connection teardown) # -# For this test to work, we are assuming that the TCP handshake and -# TCP close will enter the IP code path and not use tcp fusion. -# if (( $# != 1 )); then print -u2 "expected one argument: " exit 2 fi dtrace=$1 getaddr=./get.ipv4remote.pl tcpport=22 DIR=/var/tmp/dtest.$$ if [[ ! -x $getaddr ]]; then print -u2 "could not find or execute sub program: $getaddr" exit 3 fi $getaddr $tcpport | read source dest if (( $? != 0 )); then exit 4 fi mkdir $DIR cd $DIR cat > test.pl <<-EOPERL use IO::Socket; my \$s = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$dest", PeerPort => $tcpport, Timeout => 3); die "Could not connect to host $dest port $tcpport" unless \$s; - print \$s "testing state machine transitions"; + readline \$s; close \$s; sleep(2); EOPERL $dtrace -c 'perl test.pl' -qs /dev/stdin <ip_saddr == "$source" && args[2]->ip_daddr == "$dest" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipsend++; } tcp:::send /args[2]->ip_saddr == "$source" && args[2]->ip_daddr == "$dest" && args[4]->tcp_dport == $tcpport/ { tcpsend++; } ip:::receive /args[2]->ip_saddr == "$dest" && args[2]->ip_daddr == "$source" && args[4]->ipv4_protocol == IPPROTO_TCP/ { ipreceive++; } tcp:::receive /args[2]->ip_saddr == "$dest" && args[2]->ip_daddr == "$source" && args[4]->tcp_sport == $tcpport/ { tcpreceive++; } tcp:::state-change { state_event[args[3]->tcps_state]++; } tcp:::connect-request /args[2]->ip_saddr == "$source" && args[2]->ip_daddr == "$dest" && args[4]->tcp_dport == $tcpport/ { connreq++; } tcp:::connect-established /args[2]->ip_saddr == "$dest" && args[2]->ip_daddr == "$source" && args[4]->tcp_sport == $tcpport/ { connest++; } END { printf("Minimum TCP events seen\n\n"); printf("ip:::send - %s\n", ipsend >= 4 ? "yes" : "no"); - printf("ip:::receive - %s\n", ipreceive >= 3 ? "yes" : "no"); + printf("ip:::receive - %s\n", ipreceive >= 5 ? "yes" : "no"); printf("tcp:::send - %s\n", tcpsend >= 4 ? "yes" : "no"); - printf("tcp:::receive - %s\n", tcpreceive >= 3 ? "yes" : "no"); + printf("tcp:::receive - %s\n", tcpreceive >= 5 ? "yes" : "no"); printf("tcp:::state-change to syn-sent - %s\n", state_event[TCP_STATE_SYN_SENT] >=1 ? "yes" : "no"); printf("tcp:::state-change to established - %s\n", state_event[TCP_STATE_ESTABLISHED] >= 1 ? "yes" : "no"); printf("tcp:::state-change to fin-wait-1 - %s\n", state_event[TCP_STATE_FIN_WAIT_1] >= 1 ? "yes" : "no"); printf("tcp:::state-change to fin-wait-2 - %s\n", state_event[TCP_STATE_FIN_WAIT_2] >= 1 ? "yes" : "no"); printf("tcp:::state-change to time-wait - %s\n", state_event[TCP_STATE_TIME_WAIT] >= 1 ? "yes" : "no"); printf("tcp:::connect-request - %s\n", connreq >=1 ? "yes" : "no"); printf("tcp:::connect-established - %s\n", connest >=1 ? "yes" : "no"); } EODTRACE status=$? cd / /bin/rm -rf $DIR exit $status Index: head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh =================================================================== --- head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh (revision 336596) +++ head/cddl/usr.sbin/dtrace/tests/tools/exclude.sh (revision 336597) @@ -1,197 +1,194 @@ # $FreeBSD$ # This file lists DTrace tests which are known to fail or hang/crash the # system. They were pulled from the legacy DTrace test infrastructure in # tools/tests/dtrace and may be out of date. # # Tests are listed here generally because one or more of the following is true: # # 1) The test is broken (usually because it assumes it's running on Solaris and # the test encodes some sort of Solarisism). # 2) The functionality being tested is buggy (often but not always the result # of a FreeBSD-specific bug). # 3) The test relies on DTrace functionality that's not yet available in FreeBSD # (e.g. tests for a specific SDT provider that we don't have). # # An end goal is to remove this file, concentrating first on instances of # 1) and 2). # # The SKIP variable contains tests that should not be executed at all. The # EXFAIL variable contains tests that are expected to fail when run. Please # avoid adding tests to SKIP unless it really is necessary; with EXFAIL, tests # that begin passing as the result of a change are visible in the test summary. exclude() { eval $1=\"\$$1\\n$2\" } exclude EXFAIL common/aggs/tst.subr.d exclude EXFAIL common/dtraceUtil/tst.ELFGenerationOut.d.ksh exclude EXFAIL common/dtraceUtil/tst.ELFGenerationWithO.d.ksh 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/mdb/tst.dtracedcmd.ksh exclude EXFAIL common/misc/tst.dofmax.ksh exclude EXFAIL common/misc/tst.include.ksh exclude EXFAIL common/safety/tst.copyin2.d exclude EXFAIL common/safety/tst.msgdsize.d exclude EXFAIL common/safety/tst.msgsize.d exclude EXFAIL common/scalars/tst.misc.d exclude EXFAIL common/scalars/tst.selfarray2.d exclude EXFAIL common/sched/tst.enqueue.d exclude EXFAIL common/speculation/tst.SpecSizeVariations3.d exclude EXFAIL common/tracemem/err.D_TRACEMEM_ADDR.badaddr.d exclude EXFAIL common/translators/tst.TestTransStability2.ksh exclude EXFAIL common/types/tst.struct.d exclude EXFAIL common/types/tst.typedef.d # We don't have a cpc provider. exclude SKIP common/cpc/err.D_PDESC_ZERO.lowfrequency.d exclude SKIP common/cpc/err.D_PDESC_ZERO.malformedoverflow.d exclude SKIP common/cpc/err.D_PDESC_ZERO.nonexistentevent.d exclude SKIP common/cpc/err.cpcvscpustatpart1.ksh exclude SKIP common/cpc/err.cpcvscpustatpart2.ksh exclude SKIP common/cpc/err.cputrackfailtostart.ksh exclude SKIP common/cpc/err.cputrackterminates.ksh exclude SKIP common/cpc/err.toomanyenablings.d exclude SKIP common/cpc/tst.allcpus.ksh exclude SKIP common/cpc/tst.genericevent.d exclude SKIP common/cpc/tst.platformevent.ksh # We don't have a mib provider. exclude EXFAIL common/mib/tst.icmp.ksh exclude EXFAIL common/mib/tst.tcp.ksh exclude EXFAIL common/mib/tst.udp.ksh # At the moment dtrace(1) always needs to run as root. exclude SKIP common/privs/tst.fds.ksh exclude SKIP common/privs/tst.func_access.ksh exclude SKIP common/privs/tst.getf.ksh exclude SKIP common/privs/tst.kpriv.ksh exclude SKIP common/privs/tst.op_access.ksh exclude SKIP common/privs/tst.procpriv.ksh exclude SKIP common/privs/tst.providers.ksh exclude SKIP common/privs/tst.unpriv_funcs.ksh # These tests hang for reasons unknown. exclude SKIP common/buffering/tst.ring3.d exclude SKIP common/funcs/tst.chill.ksh exclude SKIP common/funcs/tst.index.d # No Java support at the moment. exclude EXFAIL common/java_api/tst.Abort.ksh exclude EXFAIL common/java_api/tst.Bean.ksh exclude EXFAIL common/java_api/tst.Close.ksh exclude EXFAIL common/java_api/tst.Drop.ksh exclude EXFAIL common/java_api/tst.Enable.ksh exclude EXFAIL common/java_api/tst.FunctionLookup.ksh exclude EXFAIL common/java_api/tst.GetAggregate.ksh exclude EXFAIL common/java_api/tst.MaxConsumers.ksh exclude EXFAIL common/java_api/tst.MultiAggPrinta.ksh exclude EXFAIL common/java_api/tst.ProbeData.ksh exclude EXFAIL common/java_api/tst.ProbeDescription.ksh exclude EXFAIL common/java_api/tst.StateMachine.ksh exclude EXFAIL common/java_api/tst.StopLock.ksh # Expects specific formatting from banner(6). exclude EXFAIL common/aggs/tst.aggpackbanner.ksh # Test assumes we're running on a Solaris kernel. exclude EXFAIL common/misc/tst.roch.d exclude EXFAIL common/predicates/tst.argsnotcached.d exclude EXFAIL common/safety/tst.vahole.d # Tests that depend on the plockstat provider. exclude EXFAIL common/plockstat/tst.available.d exclude EXFAIL common/plockstat/tst.libmap.d exclude EXFAIL common/usdt/tst.andpid.ksh # Depends on java. exclude SKIP common/drops/drp.DTRACEDROP_STKSTROVERFLOW.d # Interrupt priority isn't relevant on FreeBSD. exclude SKIP common/builtinvar/tst.ipl.d exclude SKIP common/builtinvar/tst.ipl1.d # These tests rely on being able to find a host via broadcast pings. exclude EXFAIL common/ip/tst.ipv4remotetcp.ksh exclude EXFAIL common/ip/tst.ipv4remoteudp.ksh exclude EXFAIL common/ip/tst.ipv6remoteicmp.ksh exclude EXFAIL common/ip/tst.ipv4remoteicmp.ksh - -# FreeBSD never places tcpcbs in the TIME_WAIT state, so the probe never fires. -exclude EXFAIL common/ip/tst.localtcpstate.ksh exclude EXFAIL common/ip/tst.remotetcpstate.ksh # Tries to enable pid$target:libc::entry, though there's no "libc" module. # Currently unsure as to whether this might be a libproc bug. exclude EXFAIL common/pid/tst.probemod.ksh # Assumes date(1) has a pid$target::main:return probe. exclude EXFAIL common/pid/tst.newprobes.ksh # libproc+librtld_db don't handle dlopen(2) yet. exclude EXFAIL common/pid/tst.provregex2.ksh exclude EXFAIL common/pid/tst.provregex4.ksh # This test appears to be invalid. dtrace is supposed to press on if a # depends_on pragma cannot be satisfied, per the comment above # dt_load_libs_dir() in libdtrace. exclude EXFAIL common/pragma/err.invalidlibdep.ksh # This test checks for a leading tab on a line before #define. That is illegal # on Solaris, but the clang pre-processor on FreeBSD is happy with code like # that. exclude EXFAIL common/preprocessor/err.D_PRAGCTL_INVAL.tabdefine.d # This test uses proc:::signal-handle, which we don't appear to have. exclude EXFAIL common/proc/tst.signal.ksh # This test uses proc:::lwp-start, which we don't appear to have. exclude EXFAIL common/proc/tst.startexit.ksh # This test causes a panic at the moment because fbt instruments the lock class' # lc_owned method. exclude SKIP common/safety/tst.rw.d # Depends on some implementation details of the runtime linker. exclude EXFAIL common/vars/tst.ucaller.ksh # These rely on process attributes that FreeBSD doesn't carry. exclude EXFAIL common/scripting/tst.projid.ksh exclude EXFAIL common/scripting/tst.taskid.ksh # Depends on tst.chasestrings.exe being ELF32. See r326181 and r326285. exclude EXFAIL common/uctf/err.user64mode.ksh # This test expects its test program to be installed without CTF data, but # the rest of the programs for this feature need CTF data. Not yet sure how # to build that. exclude EXFAIL common/uctf/tst.libtype.ksh # libproc doesn't have linkmap support yet. exclude EXFAIL common/uctf/tst.linkmap.ksh # Uses Sun-specific compiler options. exclude EXFAIL common/usdt/tst.badguess.ksh exclude EXFAIL common/usdt/tst.guess32.ksh exclude EXFAIL common/usdt/tst.guess64.ksh # Depends on non-standard static linker behaviour. exclude EXFAIL common/usdt/tst.eliminate.ksh # Generated headers include , so _DTRACE_VERSION is always defined. exclude EXFAIL common/usdt/tst.nodtrace.ksh # The second dtrace -G invocation returns an error with "no probes found," which # makes sense to me. Not yet sure what the expected behaviour is here. exclude EXFAIL common/usdt/tst.static2.ksh # Uses the Solaris-specific ppriv(1). exclude EXFAIL common/usdt/tst.user.ksh # Triggers a lock assertion by using the raise() action from a profile probe. exclude SKIP common/ustack/tst.spin.ksh