diff options
author | Rui Paulo <rpaulo@FreeBSD.org> | 2014-06-26 21:45:49 +0000 |
---|---|---|
committer | Rui Paulo <rpaulo@FreeBSD.org> | 2014-06-26 21:45:49 +0000 |
commit | b1f9167f94059fd55c630891d359bcff987bd7eb (patch) | |
tree | 4ddc8f5aee7a410915ef2557eb021621a9b82651 /cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c | |
parent | 8a7314fcb5347f8296a072e0c4f67a9f64303186 (diff) | |
parent | ff82455cb7d7889d4334155a9f832ed021b1ef80 (diff) | |
download | src-b1f9167f94059fd55c630891d359bcff987bd7eb.tar.gz src-b1f9167f94059fd55c630891d359bcff987bd7eb.zip |
MFV illumos
4477 DTrace should speak JSON
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=267937
Diffstat (limited to 'cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c')
-rw-r--r-- | cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c b/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c new file mode 100644 index 000000000000..307106d903b5 --- /dev/null +++ b/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/json/tst.usdt.c @@ -0,0 +1,61 @@ +/* + * 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 2012 (c), Joyent, Inc. All rights reserved. + */ + +#include <sys/sdt.h> +#include "usdt.h" + +#define FMT "{" \ + " \"sizes\": [ \"first\", 2, %f ]," \ + " \"index\": %d," \ + " \"facts\": {" \ + " \"odd\": \"%s\"," \ + " \"even\": \"%s\"" \ + " }," \ + " \"action\": \"%s\"" \ + "}\n" + +int +waiting(volatile int *a) +{ + return (*a); +} + +int +main(int argc, char **argv) +{ + volatile int a = 0; + int idx; + double size = 250.5; + + while (waiting(&a) == 0) + continue; + + for (idx = 0; idx < 10; idx++) { + char *odd, *even, *json, *action; + + size *= 1.78; + odd = idx % 2 == 1 ? "true" : "false"; + even = idx % 2 == 0 ? "true" : "false"; + action = idx == 7 ? "ignore" : "print"; + + asprintf(&json, FMT, size, idx, odd, even, action); + BUNYAN_FAKE_LOG_DEBUG(json); + free(json); + } + + BUNYAN_FAKE_LOG_DEBUG("{\"finished\": true}"); + + return (0); +} |