*** Running test-ascii-control ===== CASE: -c echo $'\x02' | json read ===== echo $'\x02' | json read ^~~~ [ -c flag ]:1: json read: Invalid token while parsing JSON: Id.Unknown_Tok (line 1, offset 0-1: '\x02\n') ===== CASE: -c echo $'"foo \x01 "' | json read pp test_ (_reply) ===== echo $'"foo \x01 "' | json read ^~~~ [ -c flag ]:1: json read: JSON strings can't have unescaped ASCII control chars (line 1, offset 0-6: '"foo \x01 "\n') echo $'"foo \x01 "' | json read ^~~~ [ -c flag ]:1: errexit PID 5527: command.Simple failed with status 1 echo $'"foo \x01 "' | json read ^~~~ [ -c flag ]:1: errexit PID 5527: command.Pipeline failed with status 1 ===== CASE: -c var invalid = b'\y01' echo $["u'foo" ++ invalid ++ "'"] | json8 read pp test_ (_reply) ===== echo $["u'foo" ++ invalid ++ "'"] | json8 read ^~~~ [ -c flag ]:2: json8 read: J8 strings can't have unescaped ASCII control chars (line 1, offset 0-6: "u'foo\x01'\n") echo $["u'foo" ++ invalid ++ "'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 5532: command.Simple failed with status 1 echo $["u'foo" ++ invalid ++ "'"] | json8 read ^~~~~ [ -c flag ]:2: errexit PID 5532: command.Pipeline failed with status 1 OK test-ascii-control *** Running test-cpython Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.7/json/__init__.py", line 348, in loads return _default_decoder.decode(s) File "/usr/lib/python3.7/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.7/json/decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Invalid control character at: line 1 column 6 (char 5) Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3.7/json/__init__.py", line 348, in loads return _default_decoder.decode(s) File "/usr/lib/python3.7/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1) OK test-cpython *** Running test-encode ===== CASE: -c var d = {}; setvar d.k = d; json write (d) ===== [ -c flag ]:1: json write: Can't encode Dict 0x7f4ae6bdd758 in object cycle ===== CASE: -c var L = []; call L->append(L); json write (L) ===== [ -c flag ]:1: json write: Can't encode List 0x7fbd50174758 in object cycle ===== CASE: -c var L = []; call L->append(/d+/); j8 write (L) ===== var L = []; call L->append(/d+/); j8 write (L) ^ [ -c flag ]:1: fatal: 'j8' appears to be external. External commands don't accept typed args (OILS-ERR-200) OK test-encode *** Running test-j8-lines ===== CASE: -c write @(echo ' "json\tstring" '; echo; echo " b'j8' "; echo ' unquoted ';) ===== Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module> sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain return shell.Main('ysh', arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1253, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 401, in Batch2 is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags) File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple allow_assign=True) File "/home/uke/oil/osh/word_eval.py", line 2494, in EvalWordSequence2 allow_assign) File "/home/uke/oil/osh/word_eval.py", line 2455, in SimpleEvalWordSequence2 self._EvalWordToParts(w, part_vals, 0) # not quoted File "/home/uke/oil/osh/word_eval.py", line 1989, in _EvalWordToParts self._EvalWordPart(p, word_part_vals, eval_flags) File "/home/uke/oil/osh/word_eval.py", line 1881, in _EvalWordPart quoted) # type: part_value_t File "/home/uke/oil/osh/word_eval.py", line 2629, in _EvalCommandSub stdout_str = self.shell_ex.RunCommandSub(cs_part) File "/home/uke/oil/core/executor.py", line 691, in RunCommandSub status, stdout_str, stderr_str = self.CaptureStdout(node) File "/home/uke/oil/core/executor.py", line 619, in CaptureStdout fds, w, exc = select.select([r,r2], [], [r,r2], -1) NameError: global name 'select' is not defined data_lang/j8-errors.sh: fatal: Should run under bin/ysh: expected status 0, got 1 FAIL test-j8-lines