Results for builtin-process.test.sh

statusdashbashmkshzshosh
pass 2729302540
ok 32111
N-I 59490
BUG 10510100
FAIL 00004
total4545454545
casedashbashmkshzshoshdescription
0pass pass pass pass pass exec builtin
1pass pass pass pass pass exec builtin with redirects
2pass pass pass pass pass exec builtin with here doc
3BUG pass pass pass pass exec builtin accepts --
details
4BUG pass BUG pass pass exec -- 2>&1
detailsdetails
5pass pass pass pass pass Exit out of function
6ok ok pass BUG pass Exit builtin with invalid arg
detailsdetailsdetails
7BUG BUG ok BUG pass Exit builtin with too many args
detailsdetailsdetailsdetails
8N-I pass pass BUG pass time with brace group argument
detailsdetails
9pass pass pass pass pass get umask
10pass pass pass pass pass set umask in octal
11pass pass pass pass pass set umask symbolically
12N-I pass N-I N-I FAIL umask -p
detailsdetailsdetailsdetails
13pass pass pass pass FAIL umask -S
details
14pass pass pass pass pass umask symbolic parsing
15BUG ok BUG ok pass umask symbolic parsing with spaces
detailsdetailsdetailsdetails
16ok pass pass pass pass umask bad symbolic input
details
17BUG pass BUG BUG FAIL umask octal number out of range
detailsdetailsdetailsdetails
18pass pass pass pass pass umask allow overwriting and duplicates
19pass pass pass pass pass umask a is valid who
20BUG N-I BUG N-I pass umask X perm
detailsdetailsdetailsdetails
21pass N-I pass N-I pass umask s perm
detailsdetails
22N-I N-I N-I N-I pass umask t perm
detailsdetailsdetailsdetails
23pass pass pass BUG pass umask default who
details
24pass N-I pass BUG pass umask bare op
detailsdetails
25N-I N-I N-I N-I pass umask bare op -
detailsdetailsdetailsdetails
26pass N-I pass N-I pass umask permcopy
detailsdetails
27pass N-I pass N-I pass umask permcopy running value
detailsdetails
28pass N-I pass N-I pass umask sequential actions
detailsdetails
29pass pass pass pass pass ulimit with no flags is like -f
30pass BUG pass BUG pass ulimit too many args
detailsdetails
31pass pass pass pass pass ulimit negative flag
32pass pass BUG pass pass ulimit negative arg
details
33pass BUG pass pass pass ulimit -a doesn't take arg
details
34BUG BUG BUG BUG pass ulimit doesn't accept multiple flags - reduce confusion between shells
detailsdetailsdetailsdetails
35N-I N-I N-I N-I pass YSH readability: ulimit --all the same as ulimit -a
detailsdetailsdetailsdetails
36pass pass pass pass pass ulimit accepts 'unlimited'
37pass pass BUG pass pass ulimit of 2**32, 2**31 (int overflow)
details
38pass pass BUG pass pass ulimit that is 64 bits
details
39BUG pass BUG BUG pass arg that would overflow 64 bits is detected
detailsdetailsdetails
40pass BUG pass pass pass ulimit -f 1 prevents files larger 512 bytes
details
41pass pass pass pass ok write big file with ulimit
details
42BUG pass pass BUG pass ulimit -S for soft limit (default), -H for hard limit
detailsdetails
43BUG pass BUG pass pass Changing resource limit is denied
detailsdetails
44ok pass pass pass FAIL ulimit -n limits file descriptors
detailsdetails
151 passed, 8 OK, 27 not implemented, 35 BUG, 4 failed, 0 timeouts, 0 cases skipped
4 failed under osh

Details on runs that didn't PASS

dash3 exec builtin accepts --

stdout:
stderr: 
dash: 1: exec: --: not found
dash4 exec -- 2>&1

stdout:
stderr: 
dash: 1: exec: --: not found
mksh4 exec -- 2>&1

stdout:
stderr: 
dash6 Exit builtin with invalid arg

stdout:
stderr: 
dash: 1: exit: Illegal number: invalid
bash6 Exit builtin with invalid arg

stdout:
stderr: 
bash: line 1: exit: invalid: numeric argument required
zsh6 Exit builtin with invalid arg

stdout:
stderr: 
dash7 Exit builtin with too many args

stdout:
stderr: 
bash7 Exit builtin with too many args

stdout:
status=1
stderr:
bash: line 1: exit: too many arguments
mksh7 Exit builtin with too many args

stdout:
stderr: 
mksh: <stdin>[1]: exit: too many arguments
zsh7 Exit builtin with too many args

stdout:
status=1
stderr:
exit: too many arguments
dash8 time with brace group argument

stdout:
stderr: 
time: cannot run {: No such file or directory
Command exited with non-zero status 127
0.00user 0.00system 0:00.00elapsed 78%CPU (0avgtext+0avgdata 1280maxresident)k
0inputs+0outputs (0major+36minor)pagefaults 0swaps
dash: 7: Syntax error: "}" unexpected
zsh8 time with brace group argument

stdout:
result=1
stderr:
dash12 umask -p

stdout:
stderr: 
dash: 1: umask: Illegal option -p
mksh12 umask -p

stdout:
stderr: 
mksh: <stdin>[1]: umask: -p: unknown option
zsh12 umask -p

stdout:
stderr: 
zsh: bad option: -p
osh12 umask -p

[osh status] Expected 0 Got 1

stdout:
stderr: 
oils warning: expected one of `+-=` at start of action instead of `p`
osh13 umask -S

[osh status] Expected 0 Got 1

stdout:
stderr: 
oils warning: expected one of `+-=` at start of action instead of `S`
dash15 umask symbolic parsing with spaces

stdout:
status=0
711
stderr:
bash15 umask symbolic parsing with spaces

stdout:
status=1
111
stderr:
bash: line 2: umask: `': invalid symbolic mode operator
mksh15 umask symbolic parsing with spaces

stdout:
status=0
711
stderr:
zsh15 umask symbolic parsing with spaces

stdout:
status=1
111
stderr:
umask: too many arguments
dash16 umask bad symbolic input

stdout:
stderr: 
dash: 1: umask: Illegal mode: b=rwx
dash17 umask octal number out of range

stdout:
status=0
567
stderr:
mksh17 umask octal number out of range

stdout:
status=0
567
stderr:
zsh17 umask octal number out of range

stdout:
status=0
567
stderr:
osh17 umask octal number out of range

[osh stdout] Expected 'status=1\n022\n' Got 'status=0\n567\n'

stdout:
status=0
567
stderr:
dash20 umask X perm

stdout:
ret0 = 0
666
ret1 = 0
666
ret2 = 0
357
stderr:
bash20 umask X perm

stdout:
ret0 = 1
124
ret1 = 1
246
ret2 = 1
246
stderr:
bash: line 2: umask: `X': invalid symbolic mode character
bash: line 7: umask: `X': invalid symbolic mode character
bash: line 12: umask: `X': invalid symbolic mode character
mksh20 umask X perm

stdout:
ret0 = 0
666
ret1 = 0
666
ret2 = 0
357
stderr:
zsh20 umask X perm

stdout:
ret0 = 1
124
ret1 = 1
246
ret2 = 1
246
stderr:
umask: bad symbolic mode permission: X
umask: bad symbolic mode permission: X
umask: bad symbolic mode permission: X
bash21 umask s perm

stdout:
ret0 = 1
124
ret1 = 1
124
ret2 = 1
124
stderr:
bash: line 2: umask: `s': invalid symbolic mode character
bash: line 7: umask: `s': invalid symbolic mode character
bash: line 12: umask: `s': invalid symbolic mode character
zsh21 umask s perm

stdout:
ret0 = 1
124
ret1 = 1
124
ret2 = 1
124
stderr:
umask: bad symbolic mode permission: s
umask: bad symbolic mode permission: s
umask: bad symbolic mode permission: s
dash22 umask t perm

stdout:
ret0 = 2
124
ret1 = 2
124
ret2 = 2
124
stderr:
dash: 2: umask: Illegal mode: a-t
dash: 7: umask: Illegal mode: a+t
dash: 12: umask: Illegal mode: a=t
bash22 umask t perm

stdout:
ret0 = 1
124
ret1 = 1
124
ret2 = 1
124
stderr:
bash: line 2: umask: `t': invalid symbolic mode character
bash: line 7: umask: `t': invalid symbolic mode character
bash: line 12: umask: `t': invalid symbolic mode character
mksh22 umask t perm

stdout:
ret0 = 1
124
ret1 = 1
124
ret2 = 1
124
stderr:
mksh: <stdin>[2]: umask: bad mask
mksh: <stdin>[7]: umask: bad mask
mksh: <stdin>[12]: umask: bad mask
zsh22 umask t perm

stdout:
ret0 = 1
124
ret1 = 1
124
ret2 = 1
124
stderr:
umask: bad symbolic mode permission: t
umask: bad symbolic mode permission: t
umask: bad symbolic mode permission: t
zsh23 umask default who

stdout:
777
stderr:
zsh: rx not found
bash24 umask bare op

stdout:
124
124
124
stderr:
bash: line 2: umask: `+': invalid symbolic mode character
bash: line 6: umask: `=': invalid symbolic mode character
bash: line 10: umask: `+': invalid symbolic mode character
zsh24 umask bare op

stdout:
stderr: 
zsh: += not found
dash25 umask bare op -

stdout:
124
124
124
stderr:
dash: 2: umask: Illegal option -r
dash: 6: umask: Illegal option -w
dash: 10: umask: Illegal option -=
bash25 umask bare op -

stdout:
124
124
124
stderr:
bash: line 2: umask: -r: invalid option
umask: usage: umask [-p] [-S] [mode]
bash: line 6: umask: -w: invalid option
umask: usage: umask [-p] [-S] [mode]
bash: line 10: umask: -=: invalid option
umask: usage: umask [-p] [-S] [mode]
mksh25 umask bare op -

stdout:
124
124
124
stderr:
mksh: <stdin>[2]: umask: -r: unknown option
mksh: <stdin>[6]: umask: -w: unknown option
mksh: <stdin>[10]: umask: -=: unknown option
zsh25 umask bare op -

stdout:
124
124
124
stderr:
zsh: bad option: -r
zsh: bad option: -w
zsh: bad option: -=
bash26 umask permcopy

stdout:
124
365
124
stderr:
bash: line 2: umask: `u': invalid symbolic mode character
bash: line 6: umask: `g': invalid symbolic mode character
bash: line 10: umask: `o': invalid symbolic mode character
zsh26 umask permcopy

stdout:
124
365
124
stderr:
umask: bad symbolic mode permission: u
umask: bad symbolic mode permission: g
umask: bad symbolic mode permission: o
bash27 umask permcopy running value

stdout:
124
777
stderr:
bash: line 2: umask: `u': invalid symbolic mode character
bash: line 7: umask: `u': invalid symbolic mode character
zsh27 umask permcopy running value

stdout:
124
777
stderr:
umask: bad symbolic mode permission: u
umask: bad symbolic mode permission: u
bash28 umask sequential actions

stdout:
124
124
124
stderr:
bash: line 2: umask: `+': invalid symbolic mode character
bash: line 6: umask: `+': invalid symbolic mode character
bash: line 10: umask: `+': invalid symbolic mode character
zsh28 umask sequential actions

stdout:
124
124
124
stderr:
umask: bad symbolic mode permission: +
umask: bad symbolic mode permission: +
umask: bad symbolic mode permission: +
bash30 ulimit too many args

stdout:
fail
stderr:
zsh30 ulimit too many args

stdout:
fail
stderr:
mksh32 ulimit negative arg

stdout:
unlimited
fail
stderr:
bash33 ulimit -a doesn't take arg

stdout:
stderr: 
dash34 ulimit doesn't accept multiple flags - reduce confusion between shells

stdout:
status=0
status=0
status=0
stderr:
bash34 ulimit doesn't accept multiple flags - reduce confusion between shells

stdout:
status=0
status=0
status=0
stderr:
mksh34 ulimit doesn't accept multiple flags - reduce confusion between shells

stdout:
status=0
status=0
status=0
stderr:
zsh34 ulimit doesn't accept multiple flags - reduce confusion between shells

stdout:
status=1
status=0
status=0
stderr:
ulimit: no limits allowed with -a
dash35 YSH readability: ulimit --all the same as ulimit -a

stdout:
stderr: 
bash35 YSH readability: ulimit --all the same as ulimit -a

stdout:
stderr: 
mksh35 YSH readability: ulimit --all the same as ulimit -a

stdout:
stderr: 
zsh35 YSH readability: ulimit --all the same as ulimit -a

stdout:
stderr: 
mksh37 ulimit of 2**32, 2**31 (int overflow)

stdout:
one unlimited
two 1
three 1
stderr:
mksh: <stdin>[9]: ulimit: -2: unknown option
mksh: <stdin>[9]: ulimit: usage: ulimit [-acdefHilnpqrSstv] [value]
mksh38 ulimit that is 64 bits

stdout:
stderr: 
dash39 arg that would overflow 64 bits is detected

stdout:
before unlimited
after 1
stderr:
mksh39 arg that would overflow 64 bits is detected

stdout:
stderr: 
zsh39 arg that would overflow 64 bits is detected

stdout:
before unlimited
after 1
stderr:
bash40 ulimit -f 1 prevents files larger 512 bytes

stdout:
512 status=0
513 status=0

 512 ok.txt
 513 too-big.txt
1025 total

stderr:
osh41 write big file with ulimit

stdout:
inner=1
outer=0
stderr:
big.sh:2: echo builtin I/O error: File too large
dash42 ulimit -S for soft limit (default), -H for hard limit

stdout:
stderr: 
zsh42 ulimit -S for soft limit (default), -H for hard limit

stdout:
stderr: 
dash43 Changing resource limit is denied

stdout:
stderr: 
mksh43 Changing resource limit is denied

stdout:
stderr: 
dash44 ulimit -n limits file descriptors

stdout:
status=0
status=2
stderr:
dash: 1: cannot create out: Too many open files
osh44 ulimit -n limits file descriptors

[osh stdout] Expected 'status=0\nstatus=1\n' Got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
[ -c flag ]:1: I/O error applying redirect: Invalid argument
  ulimit -n 0; echo hi >out
                       ^
[ -c flag ]:1: Can't open 'out': Too many open files
[ -c flag ]:1: I/O error applying redirect: Too many open files