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 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 ..E.. --- Case 3: 'noflags foo:bar --color=auto\t' with flags [] EE[] ['../oil/'] py <core.completion.UserSpec object at 0x7f57166569d0> rb (None, None) words: {<Id.Lit_Chars gre> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars gre><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: {<Id.Lit_Chars gre> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DollarParen "$("><Id.Lit_Chars gre><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: {<Id.Lit_Chars gre> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_Backtick "`"><Id.Lit_Chars gre><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: {<Id.Lit_Chars grep>}{<Id.Lit_Chars f> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_Backtick "`"><Id.Lit_Chars grep><Id.WS_Space " "><Id.Lit_Chars f><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 11 line: (SourceLine line_num:1 content:"echo `grep f" src:(source.MainFile path:"<test_lib>")) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:12 line:...0x7f57165dbaa0 tval:"") ] )] display_pos 11 Completing 'echo `grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo `grep f' in 0 ms .<Api 'echo ~r' 0-7> words: {<Id.Lit_Chars echo>}{<Id.Lit_Tilde "~"> <Id.Lit_Chars r> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Tilde "~"><Id.Lit_Chars r><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo ~r' rl_slice from byte 0 to 7: 'echo ~r' <Api 'echo ~' 0-6> words: {<Id.Lit_Chars echo>}{<Id.Lit_Tilde "~"> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Tilde "~"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo ~' rl_slice from byte 0 to 6: 'echo ~' words: {<Id.Lit_Chars echo>}{<Id.Lit_Chars a> <Id.Lit_Tilde "~"> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Chars a><Id.Lit_Tilde "~"><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 5 line: (SourceLine line_num:1 content:"echo a~" src:(source.MainFile path:"<test_lib>")) tval: a ) (Token id:Id.Lit_Tilde length:1 col:6 line:...0x7f57165dbba8 tval:"~") (Token id:Id.Lit_CompDummy length:0 col:7 line:...0x7f57165dbba8 tval:"") ] )] display_pos 5 Completing 'echo a~' ... (Ctrl-C to cancel) Found 0 matches for 'echo a~' in 0 ms . words: {<Id.Lit_Chars cat>} redirects: (Redir op:<Id.Redir_Less "<"> loc:(redir_loc.Fd fd:0) arg:{<Id.Lit_Chars b> <Id.Lit_CompDummy "">}) tokens: <Id.Lit_Chars cat><Id.WS_Space " "><Id.Redir_Less "<"><Id.WS_Space " "><Id.Lit_Chars b><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'cat < b' rl_slice from byte 0 to 7: 'cat < b' Completing redirect arg words: {<Id.Lit_Chars echo>} redirects: (Redir op:<Id.Redir_GreatAnd ">&"> loc:(redir_loc.Fd fd:1) arg:{<Id.Lit_CompDummy "">}) tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Redir_GreatAnd ">&"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo >&' rl_slice from byte 0 to 7: 'echo >&' Didn't find anything to complete ..<Api 'echo $' 0-6> words: {<Id.Lit_Chars echo>}{<Id.Lit_Dollar "$"> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Dollar "$"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo $' rl_slice from byte 0 to 6: 'echo $' <Api 'echo $P' 0-7> words: {<Id.Lit_Chars echo>}{($ P) <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.VSub_DollarName "$P"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo $P' rl_slice from byte 0 to 7: 'echo $P' <Api 'echo _${' 0-8> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Chars _><Id.Left_DollarBrace "${"><Id.Lit_CompDummy ""> alias_words: line: 'echo _${' rl_slice from byte 0 to 8: 'echo _${' <Api 'echo ${P' 0-8> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DollarBrace "${"><Id.VSub_Name P><Id.Lit_CompDummy ""> alias_words: line: 'echo ${P' rl_slice from byte 0 to 8: 'echo ${P' <Api 'echo ${undef:-$P' 0-16> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DollarBrace "${"><Id.VSub_Name undef><Id.VTest_ColonHyphen ":-"><Id.VSub_DollarName "$P"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo ${undef:-$P' rl_slice from byte 0 to 16: 'echo ${undef:-$P' <Api 'echo ${undef:-$' 0-15> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DollarBrace "${"><Id.VSub_Name undef><Id.VTest_ColonHyphen ":-"><Id.Lit_Dollar "$"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo ${undef:-$' rl_slice from byte 0 to 15: 'echo ${undef:-$' <Api 'echo "$' 0-7> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DoubleQuote "\""><Id.Lit_Dollar "$"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo "$' rl_slice from byte 0 to 7: 'echo "$' <Api 'echo "$P' 0-8> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DoubleQuote "\""><Id.VSub_DollarName "$P"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo "$P' rl_slice from byte 0 to 8: 'echo "$P' <Api 'echo "${#P' 0-10> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DoubleQuote "\""><Id.Left_DollarBrace "${"><Id.VSub_Pound "#"><Id.VSub_Name P><Id.Lit_CompDummy ""> alias_words: line: 'echo "${#P' rl_slice from byte 0 to 10: 'echo "${#P' <Api 'echo "$((PWD +P' 0-15> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DoubleQuote "\""><Id.Left_DollarDParen "$(("><Id.Lit_ArithVarLike PWD><Id.Ignored_Space " "><Id.Arith_Plus "+"><Id.Lit_ArithVarLike P><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo "$((PWD +P' rl_slice from byte 0 to 15: 'echo "$((PWD +P' <Api 'echo "$(( $P' 0-12> words: redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Left_DoubleQuote "\""><Id.Left_DollarDParen "$(("><Id.Ignored_Space " "><Id.VSub_DollarName "$P"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'echo "$(( $P' rl_slice from byte 0 to 12: 'echo "$(( $P' . words: {<Id.Lit_Chars grep>}{<Id.Lit_Chars f> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars grep><Id.WS_Space " "><Id.Lit_Chars f><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 5 line: (SourceLine line_num:1 content:"grep f" src:(source.MainFile path:"<test_lib>")) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:6 line:...0x7f57165dba48 tval:"") ] )] display_pos 5 Completing 'grep f' ... (Ctrl-C to cancel) Found 2 matches for 'grep f' in 0 ms words: {<Id.Lit_Chars grep>}{<Id.Lit_Chars g> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars grep><Id.WS_Space " "><Id.Lit_Chars g><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 5 line: (SourceLine line_num:1 content:"grep g" src:(source.MainFile path:"<test_lib>")) tval: g ) (Token id:Id.Lit_CompDummy length:0 col:6 line:...0x7f57165db9f0 tval:"") ] )] display_pos 5 Completing 'grep g' ... (Ctrl-C to cancel) Found 0 matches for 'grep g' in 0 ms words: {<Id.Lit_Chars g> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars g><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: {<Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: {<Id.Lit_Chars grep>}{<Id.Lit_Chars f> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Chars hi><Id.WS_Space " "><Id.Op_DPipe "||"><Id.WS_Space " "><Id.Lit_Chars grep><Id.WS_Space " "><Id.Lit_Chars f><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 16 line: (SourceLine line_num: 1 content: "echo hi || grep f" src: (source.MainFile path:"<test_lib>") ) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:17 line:...0x7f57165dbf18 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: {<Id.Lit_Chars grep>}{<Id.Lit_Chars f> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Chars hi><Id.Op_Semi ";"><Id.WS_Space " "><Id.Lit_Chars grep><Id.WS_Space " "><Id.Lit_Chars f><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 14 line: (SourceLine line_num:1 content:"echo hi; grep f" src:(source.MainFile path:"<test_lib>")) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:15 line:...0x7f57165dbf70 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: {<Id.Lit_Chars grep>}{<Id.Lit_Chars f> <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_LBrace "{"><Id.WS_Space " "><Id.Lit_Chars echo><Id.WS_Space " "><Id.Lit_Chars hi><Id.Op_Semi ";"><Id.WS_Space " "><Id.Lit_Chars grep><Id.WS_Space " "><Id.Lit_Chars f><Id.Lit_CompDummy ""><Id.Eof_Real ""> 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: Id.Lit_Chars length: 1 col: 16 line: (SourceLine line_num: 1 content: "{ echo hi; grep f" src: (source.MainFile path:"<test_lib>") ) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:17 line:...0x7f57165dbfc8 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: <Id.Lit_VarLike "var="><Id.VSub_DollarName "$v"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'var=$v' rl_slice from byte 0 to 6: 'var=$v' words: {<Id.Lit_Chars local>}{<Id.Lit_VarLike "var="> ($ v) <Id.Lit_CompDummy "">} redirects: tokens: <Id.Lit_Chars local><Id.WS_Space " "><Id.Lit_VarLike "var="><Id.VSub_DollarName "$v"><Id.Lit_CompDummy ""><Id.Eof_Real ""> alias_words: line: 'local var=$v' rl_slice from byte 0 to 12: 'local var=$v' .EE ====================================================================== ERROR: testShellFuncExecution (__main__.CompletionTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 209, in testShellFuncExecution cmd_ev = test_lib.InitCommandEvaluator(arena=arena) File "/home/uke/oil/core/test_lib.py", line 295, in InitCommandEvaluator global_io = value.IO(None) AttributeError: type object 'value' has no attribute 'IO' ====================================================================== ERROR: testMatchesOracle (__main__.InitCompletionTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 779, in testMatchesOracle mem=mem) File "/home/uke/oil/core/test_lib.py", line 336, in EvalCode aliases=aliases) File "/home/uke/oil/core/test_lib.py", line 295, in InitCommandEvaluator global_io = value.IO(None) AttributeError: type object 'value' has no attribute 'IO' ====================================================================== ERROR: testCompletesAliases (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 514, in testCompletesAliases aliases=aliases) File "/home/uke/oil/core/test_lib.py", line 336, in EvalCode aliases=aliases) File "/home/uke/oil/core/test_lib.py", line 295, in InitCommandEvaluator global_io = value.IO(None) AttributeError: type object 'value' has no attribute 'IO' ====================================================================== ERROR: testNoInfiniteLoop (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 550, in testNoInfiniteLoop comp_lookup=comp_lookup) File "/home/uke/oil/core/test_lib.py", line 336, in EvalCode aliases=aliases) File "/home/uke/oil/core/test_lib.py", line 295, in InitCommandEvaluator global_io = value.IO(None) AttributeError: type object 'value' has no attribute 'IO' ====================================================================== ERROR: testRunsUserDefinedFunctions (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 444, in testRunsUserDefinedFunctions comp_lookup=comp_lookup) File "/home/uke/oil/core/test_lib.py", line 336, in EvalCode aliases=aliases) File "/home/uke/oil/core/test_lib.py", line 295, in InitCommandEvaluator global_io = value.IO(None) AttributeError: type object 'value' has no attribute 'IO' ---------------------------------------------------------------------- Ran 16 tests in 0.030s FAILED (errors=5) FAIL: core/completion_test.py with code 1