Results for ysh-json.test.sh

statusosh
pass 49
FAIL 2
total51
caseoshdescription
0pass usage errors
1pass json write STRING
2pass json write ARRAY
3pass json write Dict
4pass json write compact format
5pass json write in command sub
6pass json read passed invalid args
7pass json read uses $_reply var
8pass json read then json write
9pass json read with redirect
10pass json read at end of pipeline (relies on lastpipe)
11pass invalid JSON
12pass json write expression
13pass json write evaluation error
14pass json write of List in cycle
15pass json write of Dict in cycle
16pass json write of List/Dict referenced twice (bug fix)
17pass json read doesn't accept u'' or b'' strings
18pass json write emits Unicode replacement char for binary data \yff
19pass json8 write emits b'' strings for binary data \yff
20pass json8 write bytes vs unicode string
21pass JSON \/ escapes supported
22pass J8 supports superfluous \" escapes, but JSON doesn't support \' escapes
23pass Escaping uses \u0001 in "", but \u{1} in b''
24pass json8 read
25pass json8 round trip
26pass json round trip (regression)
27pass round trip: decode surrogate pair and encode
28FAIL round trip: decode surrogate half and encode
details
29pass toJson() toJ8() - TODO: test difference
30pass fromJson() fromJ8() - TODO: test difference
31pass User can handle errors - toJson() toJ8()
32pass User can handle errors - fromJson() fromJ8()
33pass ASCII control chars can't appear literally in messages
34pass JSON string can have unescaped ' and J8 string can have unescaped "
35pass \yff can't appear in u'' code strings (command)
36pass \yff can't appear in u'' code strings (expr)
37pass \yff can't appear in u'' multiline code strings
38pass \yff can't appear in u'' data strings
39pass \u{dc00} can't be in surrogate range in code (command)
40pass \u{dc00} can't be in surrogate range in code (expr)
41pass \u{dc00} can't be in surrogate range in data
42FAIL Inf and NaN can't be encoded or decoded
details
43pass Invalid UTF-8 in JSON is rejected
44pass Invalid JSON in J8 is rejected
45pass '' means the same thing as u''
46pass decode deeply nested structure (stack overflow)
47pass round trip: read/write with ysh
48pass round trip: read/write with ysh, read/write with Python 3 (bug regression)
49pass Encoding bytes that don't hit UTF8_REJECT immediately (bug fix)
50pass TYG8 token in JSON / JSON8
49 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

osh28 round trip: decode surrogate half and encode

[osh stdout] Expected '(Str) b\'\\ya0\\ybe\'\n"\\ud83e"\n(Str) b\'\\yb4\\ya6\'\n"\\udd26"\n' Got '(Str) b\'\\yed\\ya0\\ybe\'\n"\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd"\n(Str) b\'\\yed\\yb4\\ya6\'\n"\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd"\n'

stdout:
(Str)   b'\yed\ya0\ybe'
"���"
(Str)   b'\yed\yb4\ya6'
"���"
stderr:
osh42 Inf and NaN can't be encoded or decoded

[osh status] Expected 2, got 3

stdout:
stderr: 
  var n = float("NaN")
                ^
[ stdin ]:1: fatal: Cannot convert NaN to Float