1*37c79205SJoshua M. Clulow#!/bin/ksh
2*37c79205SJoshua M. Clulow#
3*37c79205SJoshua M. Clulow# This file and its contents are supplied under the terms of the
4*37c79205SJoshua M. Clulow# Common Development and Distribution License ("CDDL"), version 1.0.
5*37c79205SJoshua M. Clulow# You may only use this file in accordance with the terms of version
6*37c79205SJoshua M. Clulow# 1.0 of the CDDL.
7*37c79205SJoshua M. Clulow#
8*37c79205SJoshua M. Clulow# A full copy of the text of the CDDL should have accompanied this
9*37c79205SJoshua M. Clulow# source.  A copy of the CDDL is also available via the Internet at
10*37c79205SJoshua M. Clulow# http://www.illumos.org/license/CDDL.
11*37c79205SJoshua M. Clulow#
12*37c79205SJoshua M. Clulow
13*37c79205SJoshua M. Clulow#
14*37c79205SJoshua M. Clulow# Copyright (c) 2014, Joyent, Inc.
15*37c79205SJoshua M. Clulow#
16*37c79205SJoshua M. Clulow
17*37c79205SJoshua M. ClulowDIR=$(dirname $(whence $0))
18*37c79205SJoshua M. Clulow. ${DIR}/json_common
19*37c79205SJoshua M. Clulow
20*37c79205SJoshua M. Clulow#
21*37c79205SJoshua M. Clulow# This test checks UTF-8 parsing behaviour
22*37c79205SJoshua M. Clulow#
23*37c79205SJoshua M. Clulowexport LC_ALL="en_US.UTF-8"
24*37c79205SJoshua M. Clulowexport LANG="${LANG}"
25*37c79205SJoshua M. Clulow
26*37c79205SJoshua M. ClulowBASELINE="$(cat <<EOF
27*37c79205SJoshua M. Clulow{\
28*37c79205SJoshua M. Clulow"blank":"",\
29*37c79205SJoshua M. Clulow"":"blank key",\
30*37c79205SJoshua M. Clulow" ":"whitespace key",\
31*37c79205SJoshua M. Clulow"\ttab\t":"tab key",\
32*37c79205SJoshua M. Clulow"escapes":"escape \u001b newline \n cr \r backslash \\\\ quote \"",\
33*37c79205SJoshua M. Clulow"escape array":[\
34*37c79205SJoshua M. Clulow"escape \u001b",\
35*37c79205SJoshua M. Clulow"alarm \u0007",\
36*37c79205SJoshua M. Clulow"backspace \b",\
37*37c79205SJoshua M. Clulow"formfeed \f",\
38*37c79205SJoshua M. Clulow"newline \n",\
39*37c79205SJoshua M. Clulow"return \r",\
40*37c79205SJoshua M. Clulow"tab \t",\
41*37c79205SJoshua M. Clulow"vertical tab \u000b",\
42*37c79205SJoshua M. Clulow"black circle (UTF-8) \u25cf"\
43*37c79205SJoshua M. Clulow]\
44*37c79205SJoshua M. Clulow}
45*37c79205SJoshua M. ClulowEOF)"
46*37c79205SJoshua M. Clulow
47*37c79205SJoshua M. ClulowOUTPUT="$(${DIR}/../../bin/print_json <<'EOF'
48*37c79205SJoshua M. Clulowadd_string "blank" "";
49*37c79205SJoshua M. Clulowadd_string "" "blank key";
50*37c79205SJoshua M. Clulowadd_string " " "whitespace key";
51*37c79205SJoshua M. Clulowadd_string "	tab	" "tab key";
52*37c79205SJoshua M. Clulowadd_string "escapes" "escape \x1b newline \n cr \r backslash \\ quote \"";
53*37c79205SJoshua M. Clulowadd_string_array "escape array"
54*37c79205SJoshua M. Clulow    "escape \x1b"
55*37c79205SJoshua M. Clulow    "alarm \a"
56*37c79205SJoshua M. Clulow    "backspace \b"
57*37c79205SJoshua M. Clulow    "formfeed \f"
58*37c79205SJoshua M. Clulow    "newline \n"
59*37c79205SJoshua M. Clulow    "return \r"
60*37c79205SJoshua M. Clulow    "tab \t"
61*37c79205SJoshua M. Clulow    "vertical tab \v"
62*37c79205SJoshua M. Clulow    "black circle (UTF-8) \xe2\x97\x8f";
63*37c79205SJoshua M. ClulowEOF)"
64*37c79205SJoshua M. Clulow
65*37c79205SJoshua M. Clulowcomplete
66