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 ..Running completion function 'f' with 3 arguments comp.first '', commands_changed: ... --- Case 3: 'noflags foo:bar --color=auto\t' with flags [] [] ['../oil/'] py rb (None, None) words: {}{ }{ } redirects: tokens: alias_words: line: 'noflags foo:bar --color=auto' rl_slice from byte 0 to 28: 'noflags foo:bar --color=auto' Completing words partial_argv: [noflags,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 16 line: (SourceLine line_num: 1 content: "noflags foo:bar --color=auto" src: (source.MainFile path:"") ) tval: --color ) (Token id:Id.Lit_Equals length:1 col:23 line:...0x7f6edf2936d8 tval:"=") (Token id:Id.Lit_Chars length:4 col:24 line:...0x7f6edf2936d8 tval:auto) (Token id:Id.Lit_CompDummy length:0 col:28 line:...0x7f6edf2936d8 tval:"") ] )] display_pos 16 Completing 'noflags foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 'noflags', commands_changed: Found 1 match for 'noflags foo:bar --color=auto' in 7 ms matches = ['noflags foo:bar dummy '] --- Case 4: 'noflags "foo:bar|" --color=auto\t' with flags [] words: {}{(DQ )}{ } redirects: tokens: alias_words: line: 'noflags "foo:bar|" --color=auto' rl_slice from byte 0 to 31: 'noflags "foo:bar|" --color=auto' Completing words partial_argv: [noflags,foo:bar|,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 19 line: (SourceLine line_num: 1 content: "noflags \"foo:bar|\" --color=auto" src: (source.MainFile path:"") ) tval: --color ) (Token id:Id.Lit_Equals length:1 col:26 line:...0x7f6edf2936d8 tval:"=") (Token id:Id.Lit_Chars length:4 col:27 line:...0x7f6edf2936d8 tval:auto) (Token id:Id.Lit_CompDummy length:0 col:31 line:...0x7f6edf2936d8 tval:"") ] )] display_pos 19 Completing 'noflags "foo:bar|" --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok Non-fatal assertion failed: COMP_WORDS: Expected noflags "foo:bar|" --color = auto, got noflags foo : bar| --color = auto Non-fatal assertion failed: COMP_CWORD: Expected 4, got 6 Non-fatal assertion failed: COMP_WORDS: Expected noflags "foo:bar|" --color = auto, got noflags foo : bar| --color = auto Non-fatal assertion failed: cword: Expected 4, got 6 comp.first 'noflags', commands_changed: Found 1 match for 'noflags "foo:bar|" --color=auto' in 3 ms matches = ['noflags "foo:bar|" dummy '] --- Case 5: 'noflags "foo:bar|\t' with flags [] words: redirects: tokens: alias_words: line: 'noflags "foo:bar|' rl_slice from byte 0 to 17: 'noflags "foo:bar|' Didn't find anything to complete matches = [] --- Case 6: 's foo:bar --color=auto\t' with flags ['-s'] words: {}{ }{ } redirects: tokens: alias_words: line: 's foo:bar --color=auto' rl_slice from byte 0 to 22: 's foo:bar --color=auto' Completing words partial_argv: [s,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 10 line: (SourceLine line_num: 1 content: "s foo:bar --color=auto" src: (source.MainFile path:"") ) tval: --color ) (Token id:Id.Lit_Equals length:1 col:17 line:...0x7f6edf2936d8 tval:"=") (Token id:Id.Lit_Chars length:4 col:18 line:...0x7f6edf2936d8 tval:auto) (Token id:Id.Lit_CompDummy length:0 col:22 line:...0x7f6edf2936d8 tval:"") ] )] display_pos 10 Completing 's foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 's', commands_changed: Found 1 match for 's foo:bar --color=auto' in 7 ms matches = ['s foo:bar dummy '] --- Case 7: 's foo:bar --color auto\t' with flags ['-s'] words: {}{ }{}{ } redirects: tokens: alias_words: line: 's foo:bar --color auto' rl_slice from byte 0 to 22: 's foo:bar --color auto' Completing words partial_argv: [s,foo:bar,--color,auto] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 4 col: 18 line: (SourceLine line_num: 1 content: "s foo:bar --color auto" src: (source.MainFile path:"") ) tval: auto ) (Token id:Id.Lit_CompDummy length:0 col:22 line:...0x7f6edf2936d8 tval:"") ] )] display_pos 18 Completing 's foo:bar --color auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 's', commands_changed: Found 1 match for 's foo:bar --color auto' in 7 ms matches = ['s foo:bar --color dummy '] --- Case 8: 'n foo:bar --color=auto\t' with flags ['-n', '='] words: {}{ }{ } redirects: tokens: alias_words: line: 'n foo:bar --color=auto' rl_slice from byte 0 to 22: 'n foo:bar --color=auto' Completing words partial_argv: [n,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 10 line: (SourceLine line_num: 1 content: "n foo:bar --color=auto" src: (source.MainFile path:"") ) tval: --color ) (Token id:Id.Lit_Equals length:1 col:17 line:...0x7f6edf2936d8 tval:"=") (Token id:Id.Lit_Chars length:4 col:18 line:...0x7f6edf2936d8 tval:auto) (Token id:Id.Lit_CompDummy length:0 col:22 line:...0x7f6edf2936d8 tval:"") ] )] display_pos 10 Completing 'n foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 'n', commands_changed: Found 1 match for 'n foo:bar --color=auto' in 7 ms matches = ['n foo:bar dummy '] --- Case 9: 'n2 foo:bar --color=auto\t' with flags ['-n', ':='] words: {}{ }{ } redirects: tokens: alias_words: line: 'n2 foo:bar --color=auto' rl_slice from byte 0 to 23: 'n2 foo:bar --color=auto' Completing words partial_argv: [n2,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 7 col: 11 line: (SourceLine line_num: 1 content: "n2 foo:bar --color=auto" src: (source.MainFile path:"") ) tval: --color ) (Token id:Id.Lit_Equals length:1 col:18 line:...0x7f6edf2936d8 tval:"=") (Token id:Id.Lit_Chars length:4 col:19 line:...0x7f6edf2936d8 tval:auto) (Token id:Id.Lit_CompDummy length:0 col:23 line:...0x7f6edf2936d8 tval:"") ] )] display_pos 11 Completing 'n2 foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 'n2', commands_changed: Found 1 match for 'n2 foo:bar --color=auto' in 6 ms matches = ['n2 foo:bar dummy '] Ran 10 cases . words: {}{} redirects: tokens: alias_words: line: 'ls ' rl_slice from byte 0 to 3: 'ls ' Completing words partial_argv: [ls,] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 3 line: (SourceLine line_num:1 content:"ls " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 3 Completing 'ls ' ... (Ctrl-C to cancel) Found 2 matches for 'ls ' in 0 ms words: {}{} redirects: tokens: alias_words: {}{} line: 'll ' rl_slice from byte 0 to 3: 'll ' Completing words partial_argv: [ll,] alias_words: [[(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ls -l " src: (source.Alias argv0: ll argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ll " src: (source.MainFile path:"") ) tval: ll ) ] ) ) ) ) ) ] ), (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 3 line: (SourceLine line_num: 1 content: "ls -l " src: (source.Alias argv0: ll argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ll " src: (source.MainFile path:"") ) tval: ll ) ] ) ) ) ) ) ] )]] alias_first: ls words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 3 line: (SourceLine line_num:1 content:"ll " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 3 Completing 'll ' ... (Ctrl-C to cancel) Found 2 matches for 'll ' in 0 ms words: {}{} redirects: tokens: alias_words: {}{}{} line: 'll_classify ' rl_slice from byte 0 to 12: 'll_classify ' Completing words partial_argv: [ll_classify,] alias_words: [[(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ls -l --classify" src: (source.Alias argv0: ll argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ll --classify " src: (source.Alias argv0: ll_classify argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 11 col: 0 line: (SourceLine line_num: 1 content: "ll_classify " src: (source.MainFile path:"") ) tval: ll_classify ) ] ) ) ) ) ) ] ) ) ) ) ) ] ), (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 3 line: (SourceLine line_num: 1 content: "ls -l --classify" src: (source.Alias argv0: ll argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ll --classify " src: (source.Alias argv0: ll_classify argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 11 col: 0 line: (SourceLine line_num: 1 content: "ll_classify " src: (source.MainFile path:"") ) tval: ll_classify ) ] ) ) ) ) ) ] ) ) ) ) ) ] ), (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 10 col: 6 line: (SourceLine line_num: 1 content: "ls -l --classify" src: (source.Alias argv0: ll argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ll --classify " src: (source.Alias argv0: ll_classify argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 11 col: 0 line: (SourceLine line_num: 1 content: "ll_classify " src: (source.MainFile path:"") ) tval: ll_classify ) ] ) ) ) ) ) ] ) ) ) ) ) ] )]] alias_first: ls words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 12 line: (SourceLine line_num:1 content:"ll_classify " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 12 Completing 'll_classify ' ... (Ctrl-C to cancel) Found 2 matches for 'll_classify ' in 0 ms words: {}{} redirects: tokens: alias_words: {}{} line: 'll_trailing ' rl_slice from byte 0 to 12: 'll_trailing ' Completing words partial_argv: [ll_trailing,] alias_words: [[(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ls -l " src: (source.Alias argv0: ll_trailing argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 11 col: 0 line: (SourceLine line_num: 1 content: "ll_trailing " src: (source.MainFile path:"") ) tval: ll_trailing ) ] ) ) ) ) ) ] ), (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 3 line: (SourceLine line_num: 1 content: "ls -l " src: (source.Alias argv0: ll_trailing argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 11 col: 0 line: (SourceLine line_num: 1 content: "ll_trailing " src: (source.MainFile path:"") ) tval: ll_trailing ) ] ) ) ) ) ) ] )]] alias_first: ls words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 12 line: (SourceLine line_num:1 content:"ll_trailing " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 12 Completing 'll_trailing ' ... (Ctrl-C to cancel) Found 2 matches for 'll_trailing ' in 0 ms words: {}{} redirects: tokens: alias_words: {}{} line: 'll_own_completion ' rl_slice from byte 0 to 18: 'll_own_completion ' Completing words partial_argv: [ll_own_completion,] alias_words: [[(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 0 line: (SourceLine line_num: 1 content: "ls -l " src: (source.Alias argv0: ll_own_completion argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 17 col: 0 line: (SourceLine line_num: 1 content: "ll_own_completion " src: (source.MainFile path:"") ) tval: ll_own_completion ) ] ) ) ) ) ) ] ), (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 2 col: 3 line: (SourceLine line_num: 1 content: "ls -l " src: (source.Alias argv0: ll_own_completion argv0_loc: (loc.Word w: (CompoundWord parts: [ (Token id: Id.Lit_Chars length: 17 col: 0 line: (SourceLine line_num: 1 content: "ll_own_completion " src: (source.MainFile path:"") ) tval: ll_own_completion ) ] ) ) ) ) ) ] )]] alias_first: ls words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 18 line: (SourceLine line_num: 1 content: "ll_own_completion " src: (source.MainFile path:"") ) tval: "" ) ] )] display_pos 18 Completing 'll_own_completion ' ... (Ctrl-C to cancel) Found 2 matches for 'll_own_completion ' in 0 ms . words: { } 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: { } 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: { } 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: {}{ } 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: Id.Lit_Chars length: 1 col: 11 line: (SourceLine line_num:1 content:"echo `grep f" src:(source.MainFile path:"")) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:12 line:...0x7f6edf1c8730 tval:"") ] )] display_pos 11 Completing 'echo `grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo `grep f' in 0 ms . words: {}{ } redirects: tokens: alias_words: line: 'echo ~r' rl_slice from byte 0 to 7: 'echo ~r' words: {}{ } redirects: tokens: alias_words: line: 'echo ~' rl_slice from byte 0 to 6: 'echo ~' words: {}{ } 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: Id.Lit_Chars length: 1 col: 5 line: (SourceLine line_num:1 content:"echo a~" src:(source.MainFile path:"")) tval: a ) (Token id:Id.Lit_Tilde length:1 col:6 line:...0x7f6edf219e10 tval:"~") (Token id:Id.Lit_CompDummy length:0 col:7 line:...0x7f6edf219e10 tval:"") ] )] display_pos 5 Completing 'echo a~' ... (Ctrl-C to cancel) Found 0 matches for 'echo a~' in 0 ms . words: {} redirects: (Redir op: loc:(redir_loc.Fd fd:0) arg:{ }) tokens: alias_words: line: 'cat < b' rl_slice from byte 0 to 7: 'cat < b' Completing redirect arg words: {} redirects: (Redir op:&"> loc:(redir_loc.Fd fd:1) arg:{}) tokens: &"> alias_words: line: 'echo >&' rl_slice from byte 0 to 7: 'echo >&' Didn't find anything to complete .. words: {}{ } redirects: tokens: alias_words: line: 'echo $' rl_slice from byte 0 to 6: 'echo $' words: {}{($ P) } redirects: tokens: alias_words: line: 'echo $P' rl_slice from byte 0 to 7: 'echo $P' F words: {}{ } 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: Id.Lit_Chars length: 1 col: 5 line: (SourceLine line_num:1 content:"grep f" src:(source.MainFile path:"")) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:6 line:...0x7f6edf20a0a8 tval:"") ] )] display_pos 5 Completing 'grep f' ... (Ctrl-C to cancel) Found 2 matches for 'grep f' in 0 ms words: {}{ } 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: Id.Lit_Chars length: 1 col: 5 line: (SourceLine line_num:1 content:"grep g" src:(source.MainFile path:"")) tval: g ) (Token id:Id.Lit_CompDummy length:0 col:6 line:...0x7f6edf20a100 tval:"") ] )] display_pos 5 Completing 'grep g' ... (Ctrl-C to cancel) Found 0 matches for 'grep g' in 0 ms words: { } 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: {} 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: {}{ } 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: 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:Id.Lit_CompDummy length:0 col:17 line:...0x7f6edf20a260 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: '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:"")) tval: f ) (Token id:Id.Lit_CompDummy length:0 col:15 line:...0x7f6edf2936d8 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: {}{ } 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: 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:Id.Lit_CompDummy length:0 col:17 line:...0x7f6edf219ba8 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: {}{} redirects: tokens: alias_words: line: 'local var=$v' rl_slice from byte 0 to 12: 'local var=$v' . words: {}{} 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: 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: {}{} 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: 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: {}{} 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: 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 comp.first 'both2', commands_changed: both2 Got 124, trying again ... Completing 'both2 ' ... (Ctrl-C to cancel) Found 2 matches for 'both2 ' in 0 ms . words: {}{ } redirects: tokens: alias_words: line: 'mywords t' rl_slice from byte 0 to 9: 'mywords t' Completing words partial_argv: [mywords,t] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 1 col: 8 line: (SourceLine line_num:1 content:"mywords t" src:(source.MainFile path:"")) tval: t ) (Token id:Id.Lit_CompDummy length:0 col:9 line:...0x7f6edf170ba8 tval:"") ] )] display_pos 8 Completing 'mywords t' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'mywords', commands_changed: Found 2 matches for 'mywords t' in 0 ms words: {}{ } redirects: tokens: alias_words: line: 'mywords_nospace t' rl_slice from byte 0 to 17: 'mywords_nospace t' Completing words partial_argv: [mywords_nospace,t] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 1 col: 16 line: (SourceLine line_num: 1 content: "mywords_nospace t" src: (source.MainFile path:"") ) tval: t ) (Token id:Id.Lit_CompDummy length:0 col:17 line:...0x7f6edf170c00 tval:"") ] )] display_pos 16 Completing 'mywords_nospace t' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'mywords_nospace', commands_changed: Found 2 matches for 'mywords_nospace t' in 0 ms words: {}{} redirects: tokens: alias_words: line: 'flagX ' rl_slice from byte 0 to 6: 'flagX ' Completing words partial_argv: [flagX,] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 6 line: (SourceLine line_num:1 content:"flagX " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 6 Completing 'flagX ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX', commands_changed: Found 2 matches for 'flagX ' in 0 ms words: {}{} redirects: tokens: alias_words: line: 'flagX_bang ' rl_slice from byte 0 to 11: 'flagX_bang ' Completing words partial_argv: [flagX_bang,] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 11 line: (SourceLine line_num:1 content:"flagX_bang " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 11 Completing 'flagX_bang ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX_bang', commands_changed: Found 2 matches for 'flagX_bang ' in 0 ms words: {}{} redirects: tokens: alias_words: line: 'flagX_prefix ' rl_slice from byte 0 to 13: 'flagX_prefix ' Completing words partial_argv: [flagX_prefix,] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_CompDummy length: 0 col: 13 line: (SourceLine line_num:1 content:"flagX_prefix " src:(source.MainFile path:"")) tval: "" ) ] )] display_pos 13 Completing 'flagX_prefix ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX_prefix', commands_changed: Found 2 matches for 'flagX_prefix ' in 0 ms words: {}{ } redirects: tokens: alias_words: line: 'prefix_plusdirs b' rl_slice from byte 0 to 17: 'prefix_plusdirs b' Completing words partial_argv: [prefix_plusdirs,b] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 1 col: 16 line: (SourceLine line_num: 1 content: "prefix_plusdirs b" src: (source.MainFile path:"") ) tval: b ) (Token id:Id.Lit_CompDummy length:0 col:17 line:...0x7f6edf170db8 tval:"") ] )] display_pos 16 Completing 'prefix_plusdirs b' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'prefix_plusdirs', commands_changed: Found 1 match for 'prefix_plusdirs b' in 0 ms words: {}{ } redirects: tokens: alias_words: line: 'flagX_plusdirs b' rl_slice from byte 0 to 16: 'flagX_plusdirs b' Completing words partial_argv: [flagX_plusdirs,b] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 1 col: 15 line: (SourceLine line_num:1 content:"flagX_plusdirs b" src:(source.MainFile path:"")) tval: b ) (Token id:Id.Lit_CompDummy length:0 col:16 line:...0x7f6edf170e10 tval:"") ] )] display_pos 15 Completing 'flagX_plusdirs b' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX_plusdirs', commands_changed: Found 0 matches for 'flagX_plusdirs b' in 0 ms words: {}{ } redirects: tokens: alias_words: line: 'prefix_dirnames b' rl_slice from byte 0 to 17: 'prefix_dirnames b' Completing words partial_argv: [prefix_dirnames,b] alias_words: [[]] words[-1]: [(CompoundWord parts: [ (Token id: Id.Lit_Chars length: 1 col: 16 line: (SourceLine line_num: 1 content: "prefix_dirnames b" src: (source.MainFile path:"") ) tval: b ) (Token id:Id.Lit_CompDummy length:0 col:17 line:...0x7f6edf170c58 tval:"") ] )] display_pos 16 Completing 'prefix_dirnames b' ... (Ctrl-C to cancel) Found 0 matches for 'prefix_dirnames b' in 0 ms . ====================================================================== FAIL: testCompletesVarNames (__main__.RootCompleterTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/uke/oil/core/completion_test.py", line 311, in testCompletesVarNames self.assert_('echo $PS4' in m, 'Got %s' % m) AssertionError: Got ['echo $PPID'] ---------------------------------------------------------------------- Ran 16 tests in 0.494s FAILED (failures=1) FAIL: core/completion_test.py with code 1