4477 DTrace should speak JSON
[illumos-gate.git] / usr / src / cmd / dtrace / test / tst / common / json / tst.strsize.d
blob6aa50b9ad02baac9a2160e7c50290985b028f729
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.
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.
13 * Copyright 2012, Joyent, Inc. All rights reserved.
17 * ASSERTION:
18 * json() run time must be bounded above by strsize. This test makes strsize
19 * small and deliberately overflows it to prove we bail and return NULL in
20 * the event that we run off the end of the string.
24 #pragma D option quiet
25 #pragma D option strsize=18
27 BEGIN
29 in = "{\"a\": 1024}"; /* length == 19 */
30 out = json(in, "a");
31 printf("|%s|\n%s\n\n", in, out != NULL ? out : "<NULL>");
33 in = "{\"a\": 1024}"; /* length == 11 */
34 out = json(in, "a");
35 printf("|%s|\n%s\n\n", in, out != NULL ? out : "<NULL>");
37 in = "{\"a\":false,\"b\":true}"; /* length == 20 */
38 out = json(in, "b");
39 printf("|%s|\n%s\n\n", in, out != NULL ? out : "<NULL>");
41 in = "{\"a\":false,\"b\":20}"; /* length == 18 */
42 out = json(in, "b");
43 printf("|%s|\n%s\n\n", in, out != NULL ? out : "<NULL>");
45 exit(0);
48 ERROR
50 exit(1);