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 asdl/target_lang_test.py > _test/py-unit/asdl/target_lang_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 builtin/trap_osh_test.py > _test/py-unit/builtin/trap_osh_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 === /home/uke/oil/_test/py-unit/core/completion_test.py.log === . -- PREFIX 'm' -- PREFIX 'opy/doc' -- PREFIX o -- PREFIX nonexistent/ -- PREFIX README. -- PREFIX core -- PREFIX asdl/R -- PREFIX opy/doc -- PREFIX opy/doc/ -- PREFIX /bi -- PREFIX /tmp/oil_comp_test/ -- PREFIX ./o -- PREFIX i ..Running completion function 'f' with 3 arguments comp.first '', commands_changed: ... --- Case 3: 'noflags foo:bar --color=auto\t' with flags [] E[] ['../oils.DEPS/', '../oil/'] py rb (None, None) E words: (w ) redirects: tokens: alias_words: line: 'gre' rl_slice from byte 0 to 3: 'gre' Completing words partial_argv: [gre] alias_words: [[]] ** DISPLAY_POS = 0 Completing 'gre' ... (Ctrl-C to cancel) Found 1 match for 'gre' in 0 ms words: (w ) redirects: tokens: alias_words: line: 'echo $(gre' rl_slice from byte 0 to 10: 'echo $(gre' Completing words partial_argv: [gre] alias_words: [[]] ** DISPLAY_POS = 7 Completing 'echo $(gre' ... (Ctrl-C to cancel) Found 1 match for 'echo $(gre' in 0 ms words: (w ) redirects: tokens: alias_words: line: 'echo `gre' rl_slice from byte 0 to 9: 'echo `gre' Completing words partial_argv: [gre] alias_words: [[]] ** DISPLAY_POS = 6 Completing 'echo `gre' ... (Ctrl-C to cancel) Found 1 match for 'echo `gre' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: 'echo `grep f' rl_slice from byte 0 to 12: 'echo `grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:11 line:(SourceLine line_num:1 content:"echo `grep f" src:(source.MainFile path:"") ) tval:f ) (Token id:Lit_CompDummy length:0 col:12 line:...0x7fc9c167e230 tval:"") ] ) ] display_pos 11 Completing 'echo `grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo `grep f' in 0 ms . words: (w ) (w ) redirects: tokens: alias_words: line: 'echo ~r' rl_slice from byte 0 to 7: 'echo ~r' words: (w ) (w ) redirects: tokens: alias_words: line: 'echo ~' rl_slice from byte 0 to 6: 'echo ~' words: (w ) (w ) redirects: tokens: alias_words: line: 'echo a~' rl_slice from byte 0 to 7: 'echo a~' Completing words partial_argv: [echo,a~] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:5 line:(SourceLine line_num:1 content:"echo a~" src:(source.MainFile path:"") ) tval:a ) (Token id:Lit_Tilde length:1 col:6 line:...0x7fc9c15d8d70 tval:"~") (Token id:Lit_CompDummy length:0 col:7 line:...0x7fc9c15d8d70 tval:"") ] ) ] display_pos 5 Completing 'echo a~' ... (Ctrl-C to cancel) Found 0 matches for 'echo a~' in 0 ms . words: (w ) redirects: (Redir op: loc:(redir_loc.Fd fd:0) arg:(w ) ) tokens: alias_words: line: 'cat < b' rl_slice from byte 0 to 7: 'cat < b' Completing redirect arg words: (w ) redirects: (Redir op:&"> loc:(redir_loc.Fd fd:1) arg:(w ) ) tokens: &"> alias_words: line: 'echo >&' rl_slice from byte 0 to 7: 'echo >&' Didn't find anything to complete .. words: (w ) (w ) redirects: tokens: alias_words: line: 'echo $' rl_slice from byte 0 to 6: 'echo $' words: (w ) (w ($ P) ) redirects: tokens: alias_words: line: 'echo $P' rl_slice from byte 0 to 7: 'echo $P' words: redirects: tokens: alias_words: line: 'echo _${' rl_slice from byte 0 to 8: 'echo _${' words: redirects: tokens: alias_words: line: 'echo ${P' rl_slice from byte 0 to 8: 'echo ${P' words: redirects: tokens: alias_words: line: 'echo ${undef:-$P' rl_slice from byte 0 to 16: 'echo ${undef:-$P' words: redirects: tokens: alias_words: line: 'echo ${undef:-$' rl_slice from byte 0 to 15: 'echo ${undef:-$' E words: (w ) (w ) redirects: tokens: alias_words: line: 'grep f' rl_slice from byte 0 to 6: 'grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:5 line:(SourceLine line_num:1 content:"grep f" src:(source.MainFile path:"") ) tval:f ) (Token id:Lit_CompDummy length:0 col:6 line:...0x7fc9c16f9350 tval:"") ] ) ] display_pos 5 Completing 'grep f' ... (Ctrl-C to cancel) Found 2 matches for 'grep f' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: 'grep g' rl_slice from byte 0 to 6: 'grep g' Completing words partial_argv: [grep,g] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:5 line:(SourceLine line_num:1 content:"grep g" src:(source.MainFile path:"") ) tval:g ) (Token id:Lit_CompDummy length:0 col:6 line:...0x7fc9c16f9410 tval:"") ] ) ] display_pos 5 Completing 'grep g' ... (Ctrl-C to cancel) Found 0 matches for 'grep g' in 0 ms words: (w ) redirects: tokens: alias_words: line: 'g' rl_slice from byte 0 to 1: 'g' Completing words partial_argv: [g] alias_words: [[]] ** DISPLAY_POS = 0 Completing 'g' ... (Ctrl-C to cancel) Found 1 match for 'g' in 0 ms words: (w ) redirects: tokens: alias_words: line: '' rl_slice from byte 0 to 0: '' Completing words partial_argv: [] alias_words: [[]] ** DISPLAY_POS = 0 Completing '' ... (Ctrl-C to cancel) Found 3 matches for '' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: 'echo hi || grep f' rl_slice from byte 0 to 17: 'echo hi || grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"echo hi || grep f" src:(source.MainFile path:"") ) tval:f ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fc9c16f9710 tval:"") ] ) ] display_pos 16 Completing 'echo hi || grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo hi || grep f' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: 'echo hi; grep f' rl_slice from byte 0 to 15: 'echo hi; grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:14 line:(SourceLine line_num:1 content:"echo hi; grep f" src:(source.MainFile path:"") ) tval:f ) (Token id:Lit_CompDummy length:0 col:15 line:...0x7fc9c16f98f0 tval:"") ] ) ] display_pos 14 Completing 'echo hi; grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo hi; grep f' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: '{ echo hi; grep f' rl_slice from byte 0 to 17: '{ echo hi; grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"{ echo hi; grep f" src:(source.MainFile path:"") ) tval:f ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fc9c16f9770 tval:"") ] ) ] display_pos 16 Completing '{ echo hi; grep f' ... (Ctrl-C to cancel) Found 2 matches for '{ echo hi; grep f' in 0 ms words: redirects: tokens: alias_words: line: 'var=$v' rl_slice from byte 0 to 6: 'var=$v' words: (w ) (w ) redirects: tokens: alias_words: line: 'local var=$v' rl_slice from byte 0 to 12: 'local var=$v' . words: (w ) (w ) redirects: tokens: alias_words: line: 'bad ' rl_slice from byte 0 to 4: 'bad ' Completing words partial_argv: [bad,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:4 line:(SourceLine line_num:1 content:"bad " src:(source.MainFile path:"") ) tval:"" ) ] ) ] display_pos 4 Completing 'bad ' ... (Ctrl-C to cancel) Running completion function '_bad' with 3 arguments _bad returning 124 comp.first 'bad', commands_changed: Function '_bad' returned 124, but the completion spec for 'bad' wasn't changed Found 0 matches for 'bad ' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: 'both ' rl_slice from byte 0 to 5: 'both ' Completing words partial_argv: [both,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:5 line:(SourceLine line_num:1 content:"both " src:(source.MainFile path:"") ) tval:"" ) ] ) ] display_pos 5 Completing 'both ' ... (Ctrl-C to cancel) Running completion function '_both' with 3 arguments comp.first 'both', commands_changed: Function '_both' returned 124, but the completion spec for 'both' wasn't changed Found 0 matches for 'both ' in 0 ms words: (w ) (w ) redirects: tokens: alias_words: line: 'both2 ' rl_slice from byte 0 to 6: 'both2 ' Completing words partial_argv: [both2,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:6 line:(SourceLine line_num:1 content:"both2 " src:(source.MainFile path:"") ) tval:"" ) ] ) ] display_pos 6 Completing 'both2 ' ... (Ctrl-C to cancel) Running completion function '_both2' with 3 arguments EE ====================================================================== ERROR: testMatchesOracle (__main__.InitCompletionTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 782, in testMatchesOracle mem=mem) File "/home/uke/oil/core/test_lib.py", line 354, in EvalCode main_loop.Batch(cmd_ev, c_parser, errfmt) # Parse and execute! 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 375, in Batch2 node = c_parser.ParseLogicalLine() # can raise ParseError File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine node = self._ParseCommandLine() File "/home/uke/oil/osh/cmd_parse.py", line 2695, in _ParseCommandLine child = self.ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr return self._ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr child = self.ParsePipeline() File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline child = self.ParseCommand() File "/home/uke/oil/osh/cmd_parse.py", line 2521, in ParseCommand return self.ParseFunctionDef() # f() { echo; } # function File "/home/uke/oil/osh/cmd_parse.py", line 2172, in ParseFunctionDef func.body = self.ParseCompoundCommand() File "/home/uke/oil/osh/cmd_parse.py", line 2073, in ParseCompoundCommand n1 = self.ParseBraceGroup() File "/home/uke/oil/osh/cmd_parse.py", line 1365, in ParseBraceGroup c_list = self._ParseCommandList() File "/home/uke/oil/osh/cmd_parse.py", line 2823, in _ParseCommandList return self._ParseCommandTerm() File "/home/uke/oil/osh/cmd_parse.py", line 2760, in _ParseCommandTerm child = self.ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr return self._ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr child = self.ParsePipeline() File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline child = self.ParseCommand() File "/home/uke/oil/osh/cmd_parse.py", line 2554, in ParseCommand return self.ParseSimpleCommand() File "/home/uke/oil/osh/cmd_parse.py", line 1222, in ParseSimpleCommand redirects, words, typed_args, block = self._ScanSimpleCommand() File "/home/uke/oil/osh/cmd_parse.py", line 904, in _ScanSimpleCommand self._GetWord() File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord w = self.w_parser.ReadWord(self.next_lex_mode) File "/home/uke/oil/osh/word_parse.py", line 2327, in ReadWord w = self._ReadWord(word_mode) File "/home/uke/oil/osh/word_parse.py", line 2244, in _ReadWord return self._ReadCompoundOrRedir(lex_mode) File "/home/uke/oil/osh/word_parse.py", line 1892, in _ReadCompoundOrRedir return self._ReadCompoundOrRedir3(lex_mode, Id.Undefined_Tok, True) File "/home/uke/oil/osh/word_parse.py", line 1997, in _ReadCompoundOrRedir3 part = self._ReadUnquotedLeftParts(is_triple_quoted) File "/home/uke/oil/osh/word_parse.py", line 910, in _ReadUnquotedLeftParts dq_part = self._ReadDoubleQuoted(self.cur_token) File "/home/uke/oil/osh/word_parse.py", line 1189, in _ReadDoubleQuoted self._ReadLikeDQ(left_token, False, parts) File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ elif self.token_type == Id.Lit_EscapedDoubleQuote: AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote' ====================================================================== ERROR: testCompletesAliases (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 517, in testCompletesAliases aliases=aliases) File "/home/uke/oil/core/test_lib.py", line 354, in EvalCode main_loop.Batch(cmd_ev, c_parser, errfmt) # Parse and execute! 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 2365, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 766, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 235, in RunSimpleCommand run_flags) File "/home/uke/oil/core/executor.py", line 577, in _RunSimpleCommand return self.RunBuiltin(builtin_id, cmd_val) File "/home/uke/oil/core/vm.py", line 266, in RunBuiltin return self._RunBuiltinProc(builtin_proc, cmd_val) File "/home/uke/oil/core/vm.py", line 276, in _RunBuiltinProc status = builtin_proc.Run(cmd_val) File "/home/uke/oil/builtin/completion_osh.py", line 325, in Run user_spec = self.spec_builder.Build(cmd_val.argv, attrs, base_opts) File "/home/uke/oil/builtin/completion_osh.py", line 234, in Build arg_word = w_parser.ReadForPlugin() File "/home/uke/oil/osh/word_parse.py", line 2358, in ReadForPlugin self._ReadLikeDQ(None, False, w.parts) File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ elif self.token_type == Id.Lit_EscapedDoubleQuote: AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote' ====================================================================== ERROR: testCompletesVarNames (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 352, in testCompletesVarNames m = list(r.Matches(comp)) File "/home/uke/oil/core/completion.py", line 1006, in Matches c_parser.ParseLogicalLine() File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine node = self._ParseCommandLine() File "/home/uke/oil/osh/cmd_parse.py", line 2695, in _ParseCommandLine child = self.ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr return self._ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr child = self.ParsePipeline() File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline child = self.ParseCommand() File "/home/uke/oil/osh/cmd_parse.py", line 2554, in ParseCommand return self.ParseSimpleCommand() File "/home/uke/oil/osh/cmd_parse.py", line 1222, in ParseSimpleCommand redirects, words, typed_args, block = self._ScanSimpleCommand() File "/home/uke/oil/osh/cmd_parse.py", line 904, in _ScanSimpleCommand self._GetWord() File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord w = self.w_parser.ReadWord(self.next_lex_mode) File "/home/uke/oil/osh/word_parse.py", line 2327, in ReadWord w = self._ReadWord(word_mode) File "/home/uke/oil/osh/word_parse.py", line 2244, in _ReadWord return self._ReadCompoundOrRedir(lex_mode) File "/home/uke/oil/osh/word_parse.py", line 1892, in _ReadCompoundOrRedir return self._ReadCompoundOrRedir3(lex_mode, Id.Undefined_Tok, True) File "/home/uke/oil/osh/word_parse.py", line 1997, in _ReadCompoundOrRedir3 part = self._ReadUnquotedLeftParts(is_triple_quoted) File "/home/uke/oil/osh/word_parse.py", line 910, in _ReadUnquotedLeftParts dq_part = self._ReadDoubleQuoted(self.cur_token) File "/home/uke/oil/osh/word_parse.py", line 1189, in _ReadDoubleQuoted self._ReadLikeDQ(left_token, False, parts) File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ elif self.token_type == Id.Lit_EscapedDoubleQuote: AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote' ====================================================================== ERROR: testNoInfiniteLoop (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 565, in testNoInfiniteLoop m = list(r.Matches(MockApi('both2 '))) File "/home/uke/oil/core/completion.py", line 1312, in Matches user_spec, comp): File "/home/uke/oil/core/completion.py", line 1354, in _PostProcess for candidate, action_kind in user_spec.AllMatches(comp): File "/home/uke/oil/core/completion.py", line 894, in AllMatches for match in a.Matches(comp): File "/home/uke/oil/core/completion.py", line 601, in Matches status = self.cmd_ev.RunFuncForCompletion(self.func, argv) File "/home/uke/oil/osh/cmd_eval.py", line 2606, in RunFuncForCompletion status = self.RunProc(proc, cmd_val) File "/home/uke/oil/osh/cmd_eval.py", line 2581, in RunProc status = self._Execute(proc.body) File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 2010, in _Dispatch status = self._ExecuteList(node.children) File "/home/uke/oil/osh/cmd_eval.py", line 2241, in _ExecuteList status = self._Execute(child) File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 766, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 235, in RunSimpleCommand run_flags) File "/home/uke/oil/core/executor.py", line 577, in _RunSimpleCommand return self.RunBuiltin(builtin_id, cmd_val) File "/home/uke/oil/core/vm.py", line 266, in RunBuiltin return self._RunBuiltinProc(builtin_proc, cmd_val) File "/home/uke/oil/core/vm.py", line 276, in _RunBuiltinProc status = builtin_proc.Run(cmd_val) File "/home/uke/oil/builtin/completion_osh.py", line 325, in Run user_spec = self.spec_builder.Build(cmd_val.argv, attrs, base_opts) File "/home/uke/oil/builtin/completion_osh.py", line 234, in Build arg_word = w_parser.ReadForPlugin() File "/home/uke/oil/osh/word_parse.py", line 2358, in ReadForPlugin self._ReadLikeDQ(None, False, w.parts) File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ elif self.token_type == Id.Lit_EscapedDoubleQuote: AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote' ====================================================================== ERROR: testRunsUserDefinedFunctions (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 447, in testRunsUserDefinedFunctions comp_lookup=comp_lookup) File "/home/uke/oil/core/test_lib.py", line 354, in EvalCode main_loop.Batch(cmd_ev, c_parser, errfmt) # Parse and execute! 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 2365, in ExecuteAndCatch status = self._Execute(node) File "/home/uke/oil/osh/cmd_eval.py", line 2164, in _Execute status = self._Dispatch(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1891, in _Dispatch status = self._DoSimple(node, cmd_st) File "/home/uke/oil/osh/cmd_eval.py", line 1153, in _DoSimple status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags) File "/home/uke/oil/osh/cmd_eval.py", line 766, in _RunSimpleCommand run_flags) File "/home/uke/oil/core/vm.py", line 235, in RunSimpleCommand run_flags) File "/home/uke/oil/core/executor.py", line 577, in _RunSimpleCommand return self.RunBuiltin(builtin_id, cmd_val) File "/home/uke/oil/core/vm.py", line 266, in RunBuiltin return self._RunBuiltinProc(builtin_proc, cmd_val) File "/home/uke/oil/core/vm.py", line 276, in _RunBuiltinProc status = builtin_proc.Run(cmd_val) File "/home/uke/oil/builtin/completion_osh.py", line 325, in Run user_spec = self.spec_builder.Build(cmd_val.argv, attrs, base_opts) File "/home/uke/oil/builtin/completion_osh.py", line 234, in Build arg_word = w_parser.ReadForPlugin() File "/home/uke/oil/osh/word_parse.py", line 2358, in ReadForPlugin self._ReadLikeDQ(None, False, w.parts) File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ elif self.token_type == Id.Lit_EscapedDoubleQuote: AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote' ---------------------------------------------------------------------- Ran 16 tests in 0.076s FAILED (errors=5) FAIL: core/completion_test.py with code 1