7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# CDDL HEADER START
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# The contents of this file are subject to the terms of the
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# Common Development and Distribution License (the "License").
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# You may not use this file except in compliance with the License.
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# or http://www.opensolaris.org/os/licensing.
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# See the License for the specific language governing permissions
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# and limitations under the License.
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# When distributing Covered Code, include this CDDL HEADER in each
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# If applicable, add the following below this CDDL HEADER, with the
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# fields enclosed by brackets "[]" replaced with your own identifying
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# information: Portions Copyright [yyyy] [name of copyright owner]
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# CDDL HEADER END
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# Copyright (c) 2011, Joyent, Inc. All rights reserved.
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrillppriv -s A=basic,dtrace_user $$
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill# We expect tick probes to fire if dtrace_user is set
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill#
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill/usr/sbin/dtrace -q -s /dev/stdin <<EOF
7d5c9b5fdaad32a290692afde7867bd051784395Bryan CantrillBEGIN
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill{
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill start = timestamp;
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill}
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrilltick-10ms
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill{
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill ticks++;
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill}
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrilltick-10ms
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill/ticks > 10 && (this->ms = (timestamp - start) / 1000000) > 2000/
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill{
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill printf("expected completion in 100 ms, found %d!\n", this->ms);
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill exit(1);
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill}
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrilltick-10ms
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill/ticks > 10/
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill{
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill printf("completed in %d ms\n", this->ms);
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill exit(0);
7d5c9b5fdaad32a290692afde7867bd051784395Bryan Cantrill}
7d5c9b5fdaad32a290692afde7867bd051784395Bryan CantrillEOF