Results for alias.test.sh

statusbashdashmkshzshosh
pass 4742423936
ok 02555
N-I 01010
BUG 13130
FAIL 00007
total4848484848
casebashdashmkshzshoshdescription
0pass BUG pass pass pass Usage of builtins
details
1pass pass pass pass pass Basic alias
2pass pass pass pass pass define and use alias on a single line
3pass pass pass pass pass alias can override builtin
4pass pass pass pass pass defining multiple aliases, then unalias
5pass pass ok pass pass alias not defined
details
6pass pass pass pass pass unalias not defined
7pass pass pass pass pass unalias -a
8pass ok ok ok pass List aliases by providing names
detailsdetailsdetails
9pass ok ok ok pass alias without args lists all aliases
detailsdetailsdetails
10pass BUG BUG BUG pass unalias without args is a usage error
detailsdetailsdetails
11pass pass pass pass pass alias with trailing space causes alias expansion on second word
12pass pass pass pass pass Recursive alias expansion of first word
13pass pass pass pass pass Recursive alias expansion of SECOND word
14pass pass pass pass pass Expansion of alias with variable
15pass pass pass pass pass Alias must be an unquoted word, no expansions allowed
16pass pass pass pass pass first and second word are the same alias, but no trailing space
17pass pass pass pass pass first and second word are the same alias, with trailing space
18pass pass pass pass pass Invalid syntax of alias
19pass pass pass pass pass Dynamic alias definition
20pass pass pass pass pass Alias name with punctuation
21pass pass ok ok pass Syntax error after expansion
detailsdetails
22pass pass pass pass pass Loop split across alias and arg works
23pass pass pass pass ok Loop split across alias in another way
details
24pass pass pass BUG ok Loop split across both iterative and recursive aliases
detailsdetails
25pass pass ok ok pass Alias with a quote in the middle is a syntax error
detailsdetails
26pass pass pass pass pass Alias with internal newlines
27pass pass pass ok pass Alias trailing newline
details
28pass pass pass pass pass Two aliases in pipeline
29pass pass pass pass FAIL Alias not respected inside $()
details
30pass pass pass pass pass Alias can be defined and used on a single line
31pass pass pass BUG pass Alias is respected inside eval
details
32pass pass pass pass pass alias with redirects works
33pass pass pass pass pass alias with environment bindings works
34pass pass pass pass pass alias with line continuation in the middle
35pass pass pass pass ok alias for left brace
details
36pass pass pass pass ok alias for left paren
details
37pass pass pass pass FAIL alias used in subshell and command sub
details
38pass pass pass pass FAIL alias used in here doc
details
39BUG pass pass pass FAIL here doc inside alias
detailsdetails
40pass N-I pass N-I FAIL Corner case: alias inside LHS array arithmetic expression
detailsdetailsdetails
41pass pass pass pass pass Alias that is pipeline
42pass pass pass pass pass Alias that is && || ;
43pass pass pass pass FAIL Alias and command sub (bug regression)
details
44pass pass pass pass pass Alias and arithmetic
45pass BUG pass pass FAIL Alias and PS4
detailsdetails
46pass pass pass pass ok alias with keywords
details
47pass pass pass pass pass alias with word of multiple lines
206 passed, 17 OK, 2 not implemented, 8 BUG, 7 failed, 0 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

dash0 Usage of builtins

stdout:
status=1
x
stderr:
dash: 1: shopt: not found
alias: -- not found
dash: 6: foo: not found
mksh5 alias not defined

stdout:
nonexistentZ alias not found
status=1
stderr:
dash8 List aliases by providing names

stdout:
e='echo'
ll='ls -l'
stderr:
mksh8 List aliases by providing names

stdout:
e=echo
ll='ls -l'
stderr:
zsh8 List aliases by providing names

stdout:
e=echo
ll='ls -l'
stderr:
dash9 alias without args lists all aliases

stdout:
ex='exit'
ll='ls -l'
status=0
stderr:
mksh9 alias without args lists all aliases

stdout:
ex=exit
ll='ls -l'
status=0
stderr:
zsh9 alias without args lists all aliases

stdout:
ex=exit
ll='ls -l'
status=0
stderr:
dash10 unalias without args is a usage error

stdout:
status=0
stderr:
mksh10 unalias without args is a usage error

stdout:
status=0
stderr:
zsh10 unalias without args is a usage error

stdout:
status=1
stderr:
unalias: not enough arguments
mksh21 Syntax error after expansion

stdout:
stderr: 
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[3]: syntax error: ';;' unexpected
zsh21 Syntax error after expansion

stdout:
stderr: 
zsh: command not found: shopt
zsh: parse error near `;;'
osh23 Loop split across alias in another way

stdout:
stderr: 
  for i in 1 2 3; do echo $i
                            ^
[ expansion of alias 'e_' ]:1: Expected word type Id.KW_Done, got Id.Eof_Real
zsh24 Loop split across both iterative and recursive aliases

stdout:
stderr: 
zsh: command not found: shopt
osh24 Loop split across both iterative and recursive aliases

stdout:
stderr: 
  for i in $one "2" 3
                     ^
[ expansion of alias 'FOR1' ]:1: Invalid word in for loop
mksh25 Alias with a quote in the middle is a syntax error

stdout:
stderr: 
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[5]: no closing quote
zsh25 Alias with a quote in the middle is a syntax error

stdout:
stderr: 
zsh: command not found: shopt
zsh: unmatched '
zsh27 Alias trailing newline

stdout:
1
2
3
stderr:
zsh: command not found: shopt
zsh: command not found: echo foo
osh29 Alias not respected inside $()

[osh status] Expected 127, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1811, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1054, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
zsh31 Alias is respected inside eval

stdout:
hello outside
stderr:
zsh: command not found: shopt
zsh: command not found: sayhi
osh35 alias for left brace

stdout:
stderr: 
  { echo one
            ^
[ expansion of alias 'LEFT' ]:1: Expected word type Id.Lit_RBrace, got Id.Eof_Real
osh36 alias for left paren

stdout:
stderr: 
  ( echo one
            ^
[ expansion of alias 'LEFT' ]:1: Expected word type Id.Right_Subshell, got Id.Eof_Real
osh37 alias used in subshell and command sub

[osh stdout] Expected '[ subshell\n[ commandsub\n', got '[ subshell\n'
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
[ subshell
stderr:
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1811, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1054, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
osh38 alias used in here doc

[osh stdout] Expected '[ ]\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _Dispatch
    status = self._DoRedirect(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1718, in _DoRedirect
    redirects.append(self._EvalRedirect(redir))
  File "/home/uke/oil/osh/cmd_eval.py", line 725, in _EvalRedirect
    val = self.word_ev.EvalWordToString(w)
  File "/home/uke/oil/osh/word_eval.py", line 2097, in EvalWordToString
    self._EvalWordPart(p, part_vals, 0)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
bash39 here doc inside alias

stdout:
stderr: 
bash: line 6: warning: here-document at line 6 delimited by end-of-file (wanted `EOF')
bash: line 6: hi: command not found
bash: line 6: EOF: command not found
osh39 here doc inside alias

[osh stdout] Expected 'hi\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1916, in _Dispatch
    status = self._DoExpandedAlias(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1126, in _DoExpandedAlias
    return self._Execute(node.child)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1922, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2161, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1985, in _Dispatch
    status = self._DoRedirect(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1718, in _DoRedirect
    redirects.append(self._EvalRedirect(redir))
  File "/home/uke/oil/osh/cmd_eval.py", line 725, in _EvalRedirect
    val = self.word_ev.EvalWordToString(w)
  File "/home/uke/oil/osh/word_eval.py", line 2097, in EvalWordToString
    self._EvalWordPart(p, part_vals, 0)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
dash40 Corner case: alias inside LHS array arithmetic expression

stdout:
stderr: 
dash: 1: shopt: not found
dash: 3: a[0]=ZERO: not found
dash: 4: a[1]=ONE: not found
dash: 5: Bad substitution
zsh40 Corner case: alias inside LHS array arithmetic expression

stdout:
stderr: 
zsh: command not found: shopt
zsh: not an identifier: a[$(zeroech
osh40 Corner case: alias inside LHS array arithmetic expression

[osh stdout] Expected "['ZERO', 'ONE']\n", got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1821, in _Dispatch
    status = self._DoShAssignment(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1180, in _DoShAssignment
    lval = self.arith_ev.EvalShellLhs(pair.lhs, which_scopes)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 958, in EvalShellLhs
    index = mops.BigTruncate(self.EvalToBigInt(node.index))
  File "/home/uke/oil/osh/sh_expr_eval.py", line 557, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 609, in Eval
    return self.word_ev.EvalWordToString(w)
  File "/home/uke/oil/osh/word_eval.py", line 2097, in EvalWordToString
    self._EvalWordPart(p, part_vals, 0)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
osh43 Alias and command sub (bug regression)

[osh stdout] Expected "['foo', 'bar']\n", got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1916, in _Dispatch
    status = self._DoExpandedAlias(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1126, in _DoExpandedAlias
    return self._Execute(node.child)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1922, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2161, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1811, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1054, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2529, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1983, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
dash45 Alias and PS4

stdout:
stderr: 
osh45 Alias and PS4

[osh stdout] Expected "['foo', 'bar']\n", got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1266, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  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 2285, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 2084, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1821, in _Dispatch
    status = self._DoShAssignment(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1215, in _DoShAssignment
    self.tracer.OnShAssignment(lval, pair.op, rhs, flags, which_scopes)
  File "/home/uke/oil/core/dev.py", line 699, in OnShAssignment
    buf = self._ShTraceBegin()
  File "/home/uke/oil/core/dev.py", line 502, in _ShTraceBegin
    prefix = self._EvalPS4('+')
  File "/home/uke/oil/core/dev.py", line 482, in _EvalPS4
    prefix = self.word_ev.EvalForPlugin(ps4_word)
  File "/home/uke/oil/osh/word_eval.py", line 2135, in EvalForPlugin
    val = self.EvalWordToString(w)
  File "/home/uke/oil/osh/word_eval.py", line 2097, in EvalWordToString
    self._EvalWordPart(p, part_vals, 0)
  File "/home/uke/oil/osh/word_eval.py", line 1875, in _EvalWordPart
    quoted)  # type: part_value_t
  File "/home/uke/oil/osh/word_eval.py", line 2623, in _EvalCommandSub
    stdout_str = self.shell_ex.RunCommandSub(cs_part)
  File "/home/uke/oil/core/executor.py", line 693, in RunCommandSub
    status, stdout_str, stderr_str = self.CaptureStdout(node)
  File "/home/uke/oil/core/executor.py", line 621, in CaptureStdout
    fds = pyos.WaitForInputs([r, r2])
  File "/home/uke/oil/core/pyos.py", line 288, in WaitForInputs
    r, w, exc = select.select(fd, [], [fd])
TypeError: argument must be an int, or have a fileno() method
osh46 alias with keywords

stdout:
stderr: 
  
   ^
[ expansion of alias 'a' ]:1: Unexpected EOF while parsing command