tst.usdt.c revision 313485
1/* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12/* 13 * Copyright 2012 (c), Joyent, Inc. All rights reserved. 14 */ 15 16#include <sys/sdt.h> 17#include <stdio.h> 18#include <stdlib.h> 19#include "usdt.h" 20 21#define FMT "{" \ 22 " \"sizes\": [ \"first\", 2, %f ]," \ 23 " \"index\": %d," \ 24 " \"facts\": {" \ 25 " \"odd\": \"%s\"," \ 26 " \"even\": \"%s\"" \ 27 " }," \ 28 " \"action\": \"%s\"" \ 29 "}\n" 30 31int 32waiting(volatile int *a) 33{ 34 return (*a); 35} 36 37int 38main(int argc, char **argv) 39{ 40 volatile int a = 0; 41 int idx; 42 double size = 250.5; 43 44 while (waiting(&a) == 0) 45 continue; 46 47 for (idx = 0; idx < 10; idx++) { 48 char *odd, *even, *json, *action; 49 50 size *= 1.78; 51 odd = idx % 2 == 1 ? "true" : "false"; 52 even = idx % 2 == 0 ? "true" : "false"; 53 action = idx == 7 ? "ignore" : "print"; 54 55 asprintf(&json, FMT, size, idx, odd, even, action); 56 BUNYAN_FAKE_LOG_DEBUG(json); 57 free(json); 58 } 59 60 BUNYAN_FAKE_LOG_DEBUG("{\"finished\": true}"); 61 62 return (0); 63} 64