RUN asdl/examples/typed_arith_parse_test.py > _test/py-unit/asdl/examples/typed_arith_parse_test.py.log OK RUN asdl/format_test.py > _test/py-unit/asdl/format_test.py.log OK RUN asdl/front_end_test.py > _test/py-unit/asdl/front_end_test.py.log OK RUN asdl/gen_python_test.py > _test/py-unit/asdl/gen_python_test.py.log OK RUN benchmarks/uftrace_allocs_test.py > _test/py-unit/benchmarks/uftrace_allocs_test.py.log OK RUN build/dynamic_deps_test.py > _test/py-unit/build/dynamic_deps_test.py.log OK RUN build/ninja_lib_test.py > _test/py-unit/build/ninja_lib_test.py.log OK RUN builtin/bracket_osh_test.py > _test/py-unit/builtin/bracket_osh_test.py.log OK RUN builtin/completion_osh_test.py > _test/py-unit/builtin/completion_osh_test.py.log OK RUN builtin/func_misc_test.py > _test/py-unit/builtin/func_misc_test.py.log OK RUN builtin/misc_osh_test.py > _test/py-unit/builtin/misc_osh_test.py.log OK RUN builtin/read_osh_test.py > _test/py-unit/builtin/read_osh_test.py.log OK RUN builtin/readline_osh_test.py > _test/py-unit/builtin/readline_osh_test.py.log OK RUN client/py_fanos_test.py > _test/py-unit/client/py_fanos_test.py.log OK RUN core/alloc_test.py > _test/py-unit/core/alloc_test.py.log OK RUN core/comp_ui_test.py > _test/py-unit/core/comp_ui_test.py.log OK RUN core/completion_test.py > _test/py-unit/core/completion_test.py.log OK RUN core/process_test.py > _test/py-unit/core/process_test.py.log OK RUN core/pyutil_test.py > _test/py-unit/core/pyutil_test.py.log OK RUN core/state_test.py > _test/py-unit/core/state_test.py.log OK RUN core/util_test.py > _test/py-unit/core/util_test.py.log OK RUN data_lang/j8_test.py > _test/py-unit/data_lang/j8_test.py.log OK RUN data_lang/pyj8_test.py > _test/py-unit/data_lang/pyj8_test.py.log OK RUN display/pretty_test.py > _test/py-unit/display/pretty_test.py.log OK RUN display/ui_test.py > _test/py-unit/display/ui_test.py.log OK RUN doctools/cmark_test.py > _test/py-unit/doctools/cmark_test.py.log OK RUN doctools/help_gen_test.py > _test/py-unit/doctools/help_gen_test.py.log OK RUN doctools/html_lib_test.py > _test/py-unit/doctools/html_lib_test.py.log OK RUN doctools/oils_doc_test.py > _test/py-unit/doctools/oils_doc_test.py.log OK RUN doctools/spelling_test.py > _test/py-unit/doctools/spelling_test.py.log OK RUN doctools/split_doc_test.py > _test/py-unit/doctools/split_doc_test.py.log OK RUN frontend/args_test.py > _test/py-unit/frontend/args_test.py.log OK RUN frontend/id_kind_def_test.py > _test/py-unit/frontend/id_kind_def_test.py.log OK RUN frontend/lexer_def_test.py > _test/py-unit/frontend/lexer_def_test.py.log OK RUN frontend/lexer_gen_test.py > _test/py-unit/frontend/lexer_gen_test.py.log OK RUN frontend/lexer_test.py > _test/py-unit/frontend/lexer_test.py.log OK RUN frontend/match_test.py > _test/py-unit/frontend/match_test.py.log OK RUN frontend/reader_test.py > _test/py-unit/frontend/reader_test.py.log OK RUN frontend/typed_args_test.py > _test/py-unit/frontend/typed_args_test.py.log OK RUN lazylex/html_test.py > _test/py-unit/lazylex/html_test.py.log OK RUN mycpp/format_strings_test.py > _test/py-unit/mycpp/format_strings_test.py.log OK RUN mycpp/mops_test.py > _test/py-unit/mycpp/mops_test.py.log OK RUN mycpp/mylib_test.py > _test/py-unit/mycpp/mylib_test.py.log OK RUN mycpp/pass_state_test.py > _test/py-unit/mycpp/pass_state_test.py.log OK RUN osh/arith_parse_test.py > _test/py-unit/osh/arith_parse_test.py.log OK RUN osh/bool_parse_test.py > _test/py-unit/osh/bool_parse_test.py.log OK RUN osh/braces_test.py > _test/py-unit/osh/braces_test.py.log OK RUN osh/cmd_eval_test.py > _test/py-unit/osh/cmd_eval_test.py.log OK RUN osh/cmd_parse_test.py > _test/py-unit/osh/cmd_parse_test.py.log OK RUN osh/glob_test.py > _test/py-unit/osh/glob_test.py.log OK RUN osh/history_test.py > _test/py-unit/osh/history_test.py.log OK RUN osh/prompt_test.py > _test/py-unit/osh/prompt_test.py.log OK RUN osh/sh_expr_eval_test.py > _test/py-unit/osh/sh_expr_eval_test.py.log OK RUN osh/split_test.py > _test/py-unit/osh/split_test.py.log OK RUN osh/string_ops_test.py > _test/py-unit/osh/string_ops_test.py.log OK RUN osh/word_compile_test.py > _test/py-unit/osh/word_compile_test.py.log OK RUN osh/word_eval_test.py > _test/py-unit/osh/word_eval_test.py.log OK RUN osh/word_parse_test.py > _test/py-unit/osh/word_parse_test.py.log OK RUN osh/word_test.py > _test/py-unit/osh/word_test.py.log OK RUN pyext/fanos_test.py > _test/py-unit/pyext/fanos_test.py.log OK RUN pyext/fastfunc_test.py > _test/py-unit/pyext/fastfunc_test.py.log OK RUN pyext/fastlex_test.py > _test/py-unit/pyext/fastlex_test.py.log OK RUN pyext/libc_test.py > _test/py-unit/pyext/libc_test.py.log OK RUN pyext/line_input_test.py > _test/py-unit/pyext/line_input_test.py.log OK RUN pyext/posix_test.py > _test/py-unit/pyext/posix_test.py.log OK RUN pylib/os_path_test.py > _test/py-unit/pylib/os_path_test.py.log OK RUN pylib/path_stat_test.py > _test/py-unit/pylib/path_stat_test.py.log OK RUN soil/web_test.py > _test/py-unit/soil/web_test.py.log OK RUN spec/stateful/harness_test.py > _test/py-unit/spec/stateful/harness_test.py.log OK RUN test/sh_spec_test.py > _test/py-unit/test/sh_spec_test.py.log === /home/uke/oil/_test/py-unit/test/sh_spec_test.py.log === E....(1, 0, 'Env binding in readonly/declare disallowed') (2, 4, 'FOO=foo readonly v=$(tests/printenv.py FOO)\n') (3, 4, 'echo "v=$v"\n') (6, 1, ('OK', 'bash/dash/mksh', 'stdout', 'v=None\n')) (7, 1, ('OK', 'bash/dash/mksh', 'status', '0')) (8, 1, (None, None, 'status', '2')) (9, 5, '') (1, 0, 'Multiline test case') (2, 4, 'echo one\n') (3, 4, 'echo two\n') (4, 1, (None, None, 'status', '1')) (5, 1, (None, None, 'stderr-json', '""')) (6, 2, (None, None, 'STDOUT', '')) (7, 4, 'one\n') (8, 4, 'two\n') (9, 2, ('OK', 'dash', 'STDOUT', '')) (10, 4, 'dash1\n') (11, 4, 'dash2\n') (12, 3, None) (13, 2, ('OK', 'mksh', 'STDOUT', '')) (14, 4, 'mksh1\n') (15, 4, 'mksh2\n') (16, 3, None) (17, 5, '') [, , ] (1, 0, 'Env binding in readonly/declare disallowed') (2, 4, 'FOO=foo readonly v=$(tests/printenv.py FOO)\n') (3, 4, 'echo "v=$v"\n') (6, 1, ('OK', 'bash/dash/mksh', 'stdout', 'v=None\n')) (7, 1, ('OK', 'bash/dash/mksh', 'status', '0')) (8, 1, (None, None, 'status', '2')) (9, 5, '') (1, 0, 'Multiline test case') (2, 4, 'echo one\n') (3, 4, 'echo two\n') (4, 1, (None, None, 'status', '1')) (5, 1, (None, None, 'stderr-json', '""')) (6, 2, (None, None, 'STDOUT', '')) (7, 4, 'one\n') (8, 4, 'two\n') (9, 2, ('OK', 'dash', 'STDOUT', '')) (10, 4, 'dash1\n') (11, 4, 'dash2\n') (12, 3, None) (13, 2, ('OK', 'mksh', 'STDOUT', '')) (14, 4, 'mksh1\n') (15, 4, 'mksh2\n') (16, 3, None) (17, 5, '') [('osh', 'bin/osh'), ('osh_ALT', '_bin/osh')] [('osh', 'bin/osh'), ('osh-cpp', '_bin/cxx-dbg/osh')] [('osh', 'bin/osh'), ('osh-cpp', '_bin/cxx-dbg-sh/osh')] (1, 0, 'Env binding in readonly/declare disallowed') (2, 4, 'FOO=foo readonly v=$(tests/printenv.py FOO)\n') (3, 4, 'echo "v=$v"\n') (6, 1, ('OK', 'bash/dash/mksh', 'stdout', 'v=None\n')) (7, 1, ('OK', 'bash/dash/mksh', 'status', '0')) (8, 1, (None, None, 'status', '2')) (9, 5, '') (1, 0, 'Multiline test case') (2, 4, 'echo one\n') (3, 4, 'echo two\n') (4, 1, (None, None, 'status', '1')) (5, 1, (None, None, 'stderr-json', '""')) (6, 2, (None, None, 'STDOUT', '')) (7, 4, 'one\n') (8, 4, 'two\n') (9, 2, ('OK', 'dash', 'STDOUT', '')) (10, 4, 'dash1\n') (11, 4, 'dash2\n') (12, 3, None) (13, 2, ('OK', 'mksh', 'STDOUT', '')) (14, 4, 'mksh1\n') (15, 4, 'mksh2\n') (16, 3, None) (17, 5, '') CASE1 {'bash': {'qualifier': 'OK', 'status': '0', 'stdout': 'v=None\n'}, 'code': 'FOO=foo readonly v=$(tests/printenv.py FOO)\necho "v=$v"\n', 'dash': {'qualifier': 'OK', 'status': '0', 'stdout': 'v=None\n'}, 'desc': 'Env binding in readonly/declare disallowed', 'line_num': 1, 'mksh': {'qualifier': 'OK', 'status': '0', 'stdout': 'v=None\n'}, 'status': '2'} () CASE2 {'code': 'echo one\necho two\n', 'dash': {'qualifier': 'OK', 'stdout': 'dash1\ndash2\n'}, 'desc': 'Multiline test case', 'line_num': 1, 'mksh': {'qualifier': 'OK', 'stdout': 'mksh1\nmksh2\n'}, 'status': '1', 'stderr-json': '""', 'stdout': 'one\ntwo\n'} () [, , , ] (1, 0, 'Env binding in readonly/declare disallowed') (2, 4, 'FOO=foo readonly v=$(tests/printenv.py FOO)\n') (3, 4, 'echo "v=$v"\n') (6, 1, ('OK', 'bash/dash/mksh', 'stdout', 'v=None\n')) (7, 1, ('OK', 'bash/dash/mksh', 'status', '0')) (8, 1, (None, None, 'status', '2')) (9, 5, '') (1, 0, 'Multiline test case') (2, 4, 'echo one\n') (3, 4, 'echo two\n') (4, 1, (None, None, 'status', '1')) (5, 1, (None, None, 'stderr-json', '""')) (6, 2, (None, None, 'STDOUT', '')) (7, 4, 'one\n') (8, 4, 'two\n') (9, 2, ('OK', 'dash', 'STDOUT', '')) (10, 4, 'dash1\n') (11, 4, 'dash2\n') (12, 3, None) (13, 2, ('OK', 'mksh', 'STDOUT', '')) (14, 4, 'mksh1\n') (15, 4, 'mksh2\n') (16, 3, None) (17, 5, '') '\x1b[1mcase\tline\tbash\tosh\t\x1b[0;0m\n 0\t 1\t\x1b[31m\x1b[1mFAIL\x1b[0;0m\t\x1b[31m\x1b[1mFAIL\x1b[0;0m\tEnv binding in readonly/declare disallowed\n' (1, 0, 'Env binding in readonly/declare disallowed') (2, 4, 'FOO=foo readonly v=$(tests/prin. ====================================================================== ERROR: testSuccessOrFailure (__main__.FunctionsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/test/sh_spec_test.py", line 164, in testSuccessOrFailure status = sh_spec._SuccessOrFailure('foo', 0, stats) TypeError: _SuccessOrFailure() takes exactly 2 arguments (3 given) ---------------------------------------------------------------------- Ran 6 tests in 0.067s FAILED (errors=1) tenv.py FOO)\n') (3, 4, 'echo "v=$v"\n') (6, 1, ('OK', 'bash/dash/mksh', 'stdout', 'v=None\n')) (7, 1, ('OK', 'bash/dash/mksh', 'status', '0')) (8, 1, (None, None, 'status', '2')) (9, 5, '') (1, 0, 'Multiline test case') (2, 4, 'echo one\n') (3, 4, 'echo two\n') (4, 1, (None, None, 'status', '1')) (5, 1, (None, None, 'stderr-json', '""')) (6, 2, (None, None, 'STDOUT', '')) (7, 4, 'one\n') (8, 4, 'two\n') (9, 2, ('OK', 'dash', 'STDOUT', '')) (10, 4, 'dash1\n') (11, 4, 'dash2\n') (12, 3, None) (13, 2, ('OK', 'mksh', 'STDOUT', '')) (14, 4, 'mksh1\n') (15, 4, 'mksh2\n') (16, 3, None) (17, 5, '') FAIL: test/sh_spec_test.py with code 1