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/ui_test.py > _test/py-unit/core/ui_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/pretty_test.py > _test/py-unit/data_lang/pretty_test.py.log OK RUN data_lang/pyj8_test.py > _test/py-unit/data_lang/pyj8_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/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 === /home/uke/oil/_test/py-unit/osh/word_eval_test.py.log === E(command.Simple blame_tok: more_env: [] words: [{} {}] do_fork: T ) ls [$x] $y core/a*.py (command.Simple blame_tok: more_env: [] words: [ {} { ($ x) } {($ y)} { } ] do_fork: T ) cmd_value: (cmd_value.Argv argv: [ls "[-" -- "---]" y yy core/alloc.py core/alloc_test.py core/ansi.py] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ls [$x] $y core/a*.py" src: (source.MainFile path:"") ) tval: ls ) ] ) (CompoundWord parts: [ (Token id:Id.Lit_LBracket length:1 col:3 line:...0x7f1730c66a48 tval:"[") (SimpleVarSub tok: (Token id:Id.VSub_DollarName length:2 col:4 line:...0x7f1730c66a48 tval:x) ) (Token id:Id.Lit_RBracket length:1 col:6 line:...0x7f1730c66a48 tval:"]") ] ) ...0x7f1730c7cea8 ...0x7f1730c7cea8 ...0x7f1730c7cea8 (CompoundWord parts: [ (SimpleVarSub tok: (Token id:Id.VSub_DollarName length:2 col:8 line:...0x7f1730c66a48 tval:y) ) ] ) ...0x7f1730c7edd0 (CompoundWord parts: [ (Token id:Id.Lit_Chars length:4 col:11 line:...0x7f1730c66a48 tval:core) (Token id:Id.Lit_Slash length:1 col:15 line:...0x7f1730c66a48 tval:/) (Token id:Id.Lit_Chars length:1 col:16 line:...0x7f1730c66a48 tval:a) (Token id:Id.Lit_Star length:1 col:17 line:...0x7f1730c66a48 tval:"*") (Token id:Id.Lit_Chars length:3 col:18 line:...0x7f1730c66a48 tval:.py) ] ) ...0x7f1730c7eef0 ...0x7f1730c7eef0 ] ) local a=1 (command.Simple blame_tok: more_env: [] words: [{} {") ) tval: local ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:6 line:...0x7f1730c669f0) (Token id:Id.Lit_Chars length:1 col:8 line:...0x7f1730c669f0 tval:1) ] ) ) ] ) builtin local a=1 (command.Simple blame_tok: more_env: [] words: [{} {} {") ) tval: builtin ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:14 line:...0x7f1730c66a48) (Token id:Id.Lit_Chars length:1 col:16 line:...0x7f1730c66a48 tval:1) ] ) ) ] ) command local a=1 (command.Simple blame_tok: more_env: [] words: [{} {} {") ) tval: command ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.Str s:1) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:14 line:...0x7f1730c669f0) (Token id:Id.Lit_Chars length:1 col:16 line:...0x7f1730c669f0 tval:1) ] ) ) ] ) typeset -"$@" (command.Simple blame_tok: more_env: [] words: [{} { (DQ ($ Id.VSub_At))}] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 13 argv: [typeset -x] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 0 line: (SourceLine line_num: 1 content: "typeset -\"$@\"" src: (source.MainFile path:"") ) tval: typeset ) ] ) (CompoundWord parts: [ (Token id:Id.Lit_Chars length:1 col:8 line:...0x7f1730c66a48 tval:-) (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:9 line:...0x7f1730c66a48) parts: [(SimpleVarSub tok:(Token id:Id.VSub_At length:2 col:10 line:...0x7f1730c66a48))] right: (Token id:Id.Right_DoubleQuote length:1 col:12 line:...0x7f1730c66a48) ) ] ) ] pairs: [ (AssignArg var_name:foo plus_eq:F blame_word:...0x7f1730c25ea8) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f1730c25ea8) ] ) local a=(1 2) "$@" (command.Simple blame_tok: more_env: [] words: [ {} { words: [{} {}] right: ) } {(DQ ($ Id.VSub_At))} ] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 11 argv: [local] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 5 col: 0 line: (SourceLine line_num: 1 content: "local a=(1 2) \"$@\"" src: (source.MainFile path:"") ) tval: local ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.BashArray strs:[1 2]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:6 line:...0x7f1730c669f0) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:8 line:...0x7f1730c669f0) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:9 line:...0x7f1730c669f0 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:11 line:...0x7f1730c669f0 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:12 line:...0x7f1730c669f0) ) ] ) ) (AssignArg var_name: x plus_eq: F blame_word: (CompoundWord parts: [ (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:14 line:...0x7f1730c669f0) parts: [(SimpleVarSub tok:(Token id:Id.VSub_At length:2 col:15 line:...0x7f1730c669f0))] right: (Token id:Id.Right_DoubleQuote length:1 col:17 line:...0x7f1730c669f0) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7f1730c90368) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f1730c90368) ] ) readonly "$@" a=(1 2) (command.Simple blame_tok: more_env: [] words: [ {} {(DQ ($ Id.VSub_At))} { words: [{} {}] right: ) } ] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 10 argv: [readonly] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 8 col: 0 line: (SourceLine line_num: 1 content: "readonly \"$@\" a=(1 2)" src: (source.MainFile path:"") ) tval: readonly ) ] ) ] pairs: [ (AssignArg var_name: x plus_eq: F blame_word: (CompoundWord parts: [ (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:9 line:...0x7f1730c66a48) parts: [(SimpleVarSub tok:(Token id:Id.VSub_At length:2 col:10 line:...0x7f1730c66a48))] right: (Token id:Id.Right_DoubleQuote length:1 col:12 line:...0x7f1730c66a48) ) ] ) ) (AssignArg var_name:foo plus_eq:F blame_word:...0x7f1730c4dea8) (AssignArg var_name:spam rval:(value.Str s:eggs) plus_eq:F blame_word:...0x7f1730c4dea8) (AssignArg var_name: a rval: (value.BashArray strs:[1 2]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:14 line:...0x7f1730c66a48) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:16 line:...0x7f1730c66a48) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:17 line:...0x7f1730c66a48 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:19 line:...0x7f1730c66a48 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:20 line:...0x7f1730c66a48) ) ] ) ) ] ) declare -rx foo=bar spam=eggs a=(1 2) (command.Simple blame_tok: more_env: [] words: [ {} {} { words: [{} {}] right: ) } ] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 12 argv: [declare -rx] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 0 line: (SourceLine line_num: 1 content: "declare -rx foo=bar spam=eggs a=(1 2)" src: (source.MainFile path:"") ) tval: declare ) ] ) (CompoundWord parts:[(Token id:Id.Lit_Chars length:3 col:8 line:...0x7f1730c669f0 tval:-rx)]) ] pairs: [ (AssignArg var_name: foo rval: (value.Str s:bar) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:4 col:12 line:...0x7f1730c669f0) (Token id:Id.Lit_Chars length:3 col:16 line:...0x7f1730c669f0 tval:bar) ] ) ) (AssignArg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:5 col:20 line:...0x7f1730c669f0) (Token id:Id.Lit_Chars length:4 col:25 line:...0x7f1730c669f0 tval:eggs) ] ) ) (AssignArg var_name: a rval: (value.BashArray strs:[1 2]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:30 line:...0x7f1730c669f0) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:32 line:...0x7f1730c669f0) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:33 line:...0x7f1730c669f0 tval:1)] ) (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:35 line:...0x7f1730c669f0 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:36 line:...0x7f1730c669f0) ) ] ) ) ] ) declare $binding (command.Simple blame_tok: more_env: [] words: [{} {($ binding)}] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 12 argv: [declare] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 0 line: (SourceLine line_num: 1 content: "declare $binding" src: (source.MainFile path:"") ) tval: declare ) ] ) ] pairs: [ (AssignArg var_name: spam rval: (value.Str s:eggs) plus_eq: F blame_word: (CompoundWord parts: [ (SimpleVarSub tok: (Token id:Id.VSub_DollarName length:8 col:8 line:...0x7f1730c66af8 tval:binding) ) ] ) ) ] ) declare $binding_with_spaces (command.Simple blame_tok: more_env: [] words: [{} {($ binding_with_spaces)}] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 12 argv: [declare] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 0 line: (SourceLine line_num: 1 content: "declare $binding_with_spaces" src: (source.MainFile path:"") ) tval: declare ) ] ) ] pairs: [ (AssignArg var_name: x rval: (value.Str s:"green eggs and ham") plus_eq: F blame_word: (CompoundWord parts: [ (SimpleVarSub tok: (Token id: Id.VSub_DollarName length: 20 col: 8 line: ...0x7f1730c669f0 tval: binding_with_spaces ) ) ] ) ) ] ) export a=(1 2) (command.Simple blame_tok: more_env: [] words: [ {} { words: [{} {}] right: ) } ] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 14 argv: [export] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 6 col: 0 line: (SourceLine line_num: 1 content: "export a=(1 2)" src: (source.MainFile path:"") ) tval: export ) ] ) ] pairs: [ (AssignArg var_name: a rval: (value.BashArray strs:[1 2]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:7 line:...0x7f1730c66af8) (ShArrayLiteral left: (Token id:Id.Op_LParen length:1 col:9 line:...0x7f1730c66af8) words: [ (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:10 line:...0x7f1730c66af8 tval:1)] ) (Comp.. ====================================================================== ERROR: testSplitAssignArg (__main__.RegexTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/osh/word_eval_test.py", line 53, in testSplitAssignArg actual = util.RegexSearch(word_eval.ASSIGN_ARG_RE, s) AttributeError: 'module' object has no attribute 'ASSIGN_ARG_RE' ---------------------------------------------------------------------- Ran 3 tests in 0.025s FAILED (errors=1) oundWord parts: [(Token id:Id.Lit_Chars length:1 col:12 line:...0x7f1730c66af8 tval:2)] ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:13 line:...0x7f1730c66af8) ) ] ) ) ] ) export A=(["k"]=v) (command.Simple blame_tok: more_env: [] words: [ {} { pairs: [(AssocPair key:{(DQ )} value:{})] right: ) } ] do_fork: T ) cmd_value: (cmd_value.Assign builtin_id: 14 argv: [export] arg_locs: [ (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 6 col: 0 line: (SourceLine line_num: 1 content: "export A=([\"k\"]=v)" src: (source.MainFile path:"") ) tval: export ) ] ) ] pairs: [ (AssignArg var_name: A rval: (value.BashAssoc d:[Dict k v]) plus_eq: F blame_word: (CompoundWord parts: [ (Token id:Id.Lit_VarLike length:2 col:7 line:...0x7f1730c669f0) (word_part.BashAssocLiteral left: (Token id:Id.Op_LParen length:1 col:9 line:...0x7f1730c669f0) pairs: [ (AssocPair key: (CompoundWord parts: [ (DoubleQuoted left: (Token id:Id.Left_DoubleQuote length:1 col:11 line:...0x7f1730c669f0) parts: [ (Token id: Id.Lit_Chars length: 1 col: 12 line: ...0x7f1730c669f0 tval: k ) ] right: (Token id: Id.Right_DoubleQuote length: 1 col: 13 line: ...0x7f1730c669f0 ) ) ] ) value: (CompoundWord parts: [(Token id:Id.Lit_Chars length:1 col:16 line:...0x7f1730c669f0 tval:v)] ) ) ] right: (Token id:Id.Right_ShArrayLiteral length:1 col:17 line:...0x7f1730c669f0) ) ] ) ) ] ) readonly a[x]=1 (command.Simple blame_tok: more_env: [] words: [ {} {