blob: 23bfcea65c9f8b1ba14157c12e6ee0f1636f832a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/*
* This file and its contents are supplied under the terms of the
* Common Development and Distribution License ("CDDL"), version 1.0.
* You may only use this file in accordance with the terms of version
* 1.0 of the CDDL.
*
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
* http://www.illumos.org/license/CDDL.
*/
/*
* Copyright 2019 Robert Mustacchi
*/
/*
* This is a companion DTrace script that is used by the sleep test. It
* checks if the executed program asks to sleep for the right amount of
* time and then exits in a way to indicate this. At the same time, it
* always uses the SIGALRM feature of sleep(1) to make sure that sleep
* doesn't continue executing (and also to make sure that the feature
* works).
*
* We expect the number of seconds in $1 and the number of nanoseconds
* in $2. This script should be invoked as dtrace -s sleep.d -c
* '/usr/bin/sleep <waittime>' <seconds> <nanoseconds>.
*/
pid$target::nanosleep:entry
/args[0]->tv_sec == $1 && args[0]->tv_nsec == $2/
{
raise(SIGALRM);
exit(0);
}
pid$target::nanosleep:entry
{
print(*args[0]);
raise(SIGALRM);
exit(1);
}
|