193f27766SDomagoj Stolfa#!/usr/bin/ksh
293f27766SDomagoj Stolfa#
393f27766SDomagoj Stolfa# This file and its contents are supplied under the terms of the
493f27766SDomagoj Stolfa# Common Development and Distribution License ("CDDL"), version 1.0.
593f27766SDomagoj Stolfa# You may only use this file in accordance with the terms of version
693f27766SDomagoj Stolfa# 1.0 of the CDDL.
793f27766SDomagoj Stolfa#
893f27766SDomagoj Stolfa# A full copy of the text of the CDDL should have accompanied this
993f27766SDomagoj Stolfa# source.  A copy of the CDDL is also available via the Internet at
1093f27766SDomagoj Stolfa# http://www.illumos.org/license/CDDL.
1193f27766SDomagoj Stolfa#
1293f27766SDomagoj Stolfa
1393f27766SDomagoj Stolfa#
1493f27766SDomagoj Stolfa# Copyright (c) 2023 Domagoj Stolfa
1593f27766SDomagoj Stolfa#
1693f27766SDomagoj Stolfa
1793f27766SDomagoj Stolfabname=`basename $0`
1893f27766SDomagoj Stolfadtraceout=/tmp/dtrace.$bname
1993f27766SDomagoj Stolfa
2093f27766SDomagoj Stolfascript()
2193f27766SDomagoj Stolfa{
2293f27766SDomagoj Stolfa	$dtrace -o $dtraceout.$1 -x oformat=$1 -s /dev/stdin <<__EOF__
2393f27766SDomagoj Stolfafbt:::entry
2493f27766SDomagoj Stolfa{
2593f27766SDomagoj Stolfa        x[timestamp] = 1;
2693f27766SDomagoj Stolfa}
2793f27766SDomagoj Stolfa
2893f27766SDomagoj Stolfatick-5s
2993f27766SDomagoj Stolfa{
3093f27766SDomagoj Stolfa        exit(0);
3193f27766SDomagoj Stolfa}
3293f27766SDomagoj Stolfa__EOF__
3393f27766SDomagoj Stolfa}
3493f27766SDomagoj Stolfa
3593f27766SDomagoj Stolfaif [ $# != 1 ]; then
3693f27766SDomagoj Stolfa	echo expected one argument: '<'dtrace-path'>'
3793f27766SDomagoj Stolfa	exit 2
3893f27766SDomagoj Stolfafi
3993f27766SDomagoj Stolfa
4093f27766SDomagoj Stolfadtrace=$1
4193f27766SDomagoj Stolfa
4293f27766SDomagoj Stolfascript json
4393f27766SDomagoj Stolfajq . $dtraceout.json
4493f27766SDomagoj Stolfa
4593f27766SDomagoj Stolfaif [ $? != 0 ]; then
4693f27766SDomagoj Stolfa	echo $bname: failed to produce valid JSON. see $dtraceout.json
4793f27766SDomagoj Stolfa	exit 1
4893f27766SDomagoj Stolfafi
4993f27766SDomagoj Stolfa
5093f27766SDomagoj Stolfascript xml
5193f27766SDomagoj Stolfaxmllint $dtraceout.xml
5293f27766SDomagoj Stolfa
5393f27766SDomagoj Stolfaif [ $? != 0 ]; then
5493f27766SDomagoj Stolfa	echo $bname: failed to produce valid XML. see $dtraceout.xml
5593f27766SDomagoj Stolfa	exit 1
5693f27766SDomagoj Stolfafi
5793f27766SDomagoj Stolfa
5893f27766SDomagoj Stolfarm $dtraceout.json
5993f27766SDomagoj Stolfarm $dtraceout.xml
6093f27766SDomagoj Stolfa
6193f27766SDomagoj Stolfaexit 0
62