1178476Sjb/* 2178476Sjb * CDDL HEADER START 3178476Sjb * 4178476Sjb * The contents of this file are subject to the terms of the 5178476Sjb * Common Development and Distribution License (the "License"). 6178476Sjb * You may not use this file except in compliance with the License. 7178476Sjb * 8178476Sjb * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9178476Sjb * or http://www.opensolaris.org/os/licensing. 10178476Sjb * See the License for the specific language governing permissions 11178476Sjb * and limitations under the License. 12178476Sjb * 13178476Sjb * When distributing Covered Code, include this CDDL HEADER in each 14178476Sjb * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15178476Sjb * If applicable, add the following below this CDDL HEADER, with the 16178476Sjb * fields enclosed by brackets "[]" replaced with your own identifying 17178476Sjb * information: Portions Copyright [yyyy] [name of copyright owner] 18178476Sjb * 19178476Sjb * CDDL HEADER END 20178476Sjb */ 21178476Sjb 22178476Sjb/* 23178476Sjb * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24178476Sjb * Use is subject to license terms. 25178476Sjb */ 26178476Sjb 27253726Spfg/* 28253726Spfg * Copyright (c) 2012 by Delphix. All rights reserved. 29253726Spfg */ 30178476Sjb 31178476Sjb/* 32178476Sjb * ASSERTION: 33178476Sjb * We set our buffer size absurdly low to prevent a flood of errors that we 34178476Sjb * don't care about. We set our statusrate to be infinitely short to cause 35178476Sjb * lots of activity by the DTrace process. 36178476Sjb * 37178476Sjb * SECTION: Actions and Subroutines/copyin(); 38178476Sjb * Options and Tunables/bufsize; 39178476Sjb * Options and Tunables/bufpolicy; 40178476Sjb * Options and Tunables/statusrate 41178476Sjb */ 42178476Sjb 43178476Sjb 44253726Spfg#pragma D option bufsize=32 45178476Sjb#pragma D option bufpolicy=ring 46178476Sjb#pragma D option statusrate=1nsec 47178476Sjb 48178476Sjbsyscall:::entry 49178476Sjb{ 50178476Sjb n++; 51178476Sjb trace(copyin(rand(), 1)); 52178476Sjb} 53178476Sjb 54178476Sjbsyscall:::entry 55178476Sjb{ 56178476Sjb trace(copyin(rand() | 1, 1)); 57178476Sjb} 58178476Sjb 59178476Sjbsyscall:::entry 60178476Sjb{ 61178476Sjb trace(copyin(NULL, 1)); 62178476Sjb} 63178476Sjb 64178476Sjbdtrace:::ERROR 65178476Sjb{ 66178476Sjb err++; 67178476Sjb} 68178476Sjb 69178476Sjbtick-1sec 70178476Sjb/sec++ == 10/ 71178476Sjb{ 72178476Sjb exit(2); 73178476Sjb} 74178476Sjb 75178476SjbEND 76178476Sjb/n == 0 || err == 0/ 77178476Sjb{ 78178476Sjb exit(1); 79178476Sjb} 80178476Sjb 81178476SjbEND 82178476Sjb/n != 0 && err != 0/ 83178476Sjb{ 84178476Sjb exit(0); 85178476Sjb} 86