aboutsummaryrefslogtreecommitdiff
path: root/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/oformat/tst.agg.lquantize.ksh
blob: 5ec6c725a7f051b86d1acf8fe984bc996c0d286d (plain) (blame)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/ksh
#
# 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 (c) 2023 Domagoj Stolfa
#

bname=`basename $0`
dtraceout=/tmp/dtrace.$bname

script()
{
	$dtrace -o $dtraceout.$1 -x oformat=$1 -s /dev/stdin <<__EOF__
syscall:::entry
{
        self->ts = timestamp;
}

syscall:::return
/self->ts/
{
        @[probefunc] = lquantize(timestamp - self->ts, 0, 1000000, 100);
        self->ts = 0;
}

tick-5s
{
        exit(0);
}

END
{
        printa(@);
}
__EOF__
}

if [ $# != 1 ]; then
	echo expected one argument: '<'dtrace-path'>'
	exit 2
fi

dtrace=$1

script json
jq . $dtraceout.json

if [ $? != 0 ]; then
	echo $bname: failed to produce valid JSON. see $dtraceout.json
	exit 1
fi

script xml
xmllint $dtraceout.xml

if [ $? != 0 ]; then
	echo $bname: failed to produce valid XML. see $dtraceout.xml
	exit 1
fi

rm $dtraceout.json
rm $dtraceout.xml

exit 0