Results for builtin-cd.test.sh

statusbashmkshkshtoyshsushbrushosh
pass 26181814172223
ok 0400000
BUG 0400000
FAIL 00812943
total26262626262626
casebashmkshkshtoyshsushbrushoshdescription
0pass pass pass pass pass pass pass cd and $PWD
1pass BUG FAIL FAIL FAIL pass FAIL cd BAD/..
detailsdetailsdetailsdetailsdetails
2pass pass pass pass pass FAIL pass cd with 2 or more args
details
3pass ok FAIL pass FAIL pass pass cd - without OLDPWD
detailsdetailsdetails
4pass BUG FAIL FAIL FAIL pass pass $OLDPWD
detailsdetailsdetailsdetails
5pass pass pass pass pass pass pass pwd
6pass pass pass pass pass pass pass pwd after cd ..
7pass pass pass FAIL pass pass pass pwd with symlink and -P
details
8pass pass pass pass pass pass pass setting $PWD doesn't affect the value of 'pwd' builtin
9pass pass pass FAIL pass pass pass unset PWD; then pwd
details
10pass pass pass pass pass pass pass 'unset PWD; pwd' before any cd (tickles a rare corner case)
11pass pass pass pass pass pass pass lie about PWD; pwd before any cd
12pass ok FAIL FAIL pass pass pass remove pwd dir
detailsdetailsdetails
13pass ok FAIL FAIL FAIL FAIL pass pwd in symlinked dir on shell initialization
detailsdetailsdetailsdetailsdetails
14pass pass pass pass pass pass pass Test the current directory after 'cd ..' involving symlinks
15pass pass pass pass pass pass pass cd with no arguments
16pass ok FAIL pass pass pass pass cd to nonexistent dir
detailsdetails
17pass pass pass pass pass pass pass cd away from dir that was deleted
18pass pass pass pass pass pass pass cd permits double bare dash
19pass pass pass FAIL FAIL pass pass cd to symlink with -L and -P
detailsdetails
20pass pass pass FAIL FAIL pass pass cd to relative path with -L and -P
detailsdetails
21pass pass pass pass pass pass pass unset PWD; cd /tmp is allowed (regression)
22pass pass pass FAIL FAIL FAIL FAIL CDPATH is respected
detailsdetailsdetailsdetails
23pass pass pass FAIL pass pass pass Change directory in non-shell parent process (make or Python)
details
24pass BUG FAIL FAIL FAIL pass pass What happens when inherited $PWD and current dir disagree?
detailsdetailsdetailsdetails
25pass BUG FAIL FAIL FAIL FAIL FAIL Survey of getcwd() syscall
detailsdetailsdetailsdetailsdetailsdetails
138 passed, 4 OK, 0 not implemented, 4 BUG, 36 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

mksh1 cd BAD/..

stdout:
status=0
stderr:
ksh1 cd BAD/..

[ksh stdout] Expected 'status=1\n', got 'status=0\n'

stdout:
status=0
stderr:
toysh1 cd BAD/..

[toysh stdout] Expected 'status=1\n', got 'status=0\n'

stdout:
status=0
stderr:
sush1 cd BAD/..

[sush stdout] Expected 'status=1\n', got 'status=0\n'

stdout:
status=0
stderr:
osh1 cd BAD/..

[osh stdout] Expected 'status=1\n', got 'status=0\n'

stdout:
status=0
stderr:
brush2 cd with 2 or more args

[brush stdout] Expected 'status=0\nstatus=0\nfailed with multiple args\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
error: unexpected argument 'bar' found

Usage: cd [OPTIONS] [TARGET_DIR]

For more information, try '--help'.

mksh3 cd - without OLDPWD

stdout:
status=2
stderr:
mksh: <stdin>[1]: cd: no OLDPWD
ksh3 cd - without OLDPWD

[ksh stdout] Expected 'status=1\n', got 'status=2\n'

stdout:
status=2
stderr:
E: ksh: <stdin>[1]: cd: no OLDPWD
sush3 cd - without OLDPWD

[sush stdout] Expected 'status=1\n', got 'status=0\n'

stdout:
status=0
stderr:
mksh4 $OLDPWD

stdout:
old: /
/
stderr:
ksh4 $OLDPWD

[ksh stdout] Expected 'old: /\nOLDPWD=/\n/\n', got 'old: /\n/\n'

stdout:
old: /
/
stderr:
toysh4 $OLDPWD

[toysh stdout] Expected 'old: /\nOLDPWD=/\n/\n', got 'old: /\nOLDPWD=/\n'

stdout:
old: /
OLDPWD=/
stderr:
sush4 $OLDPWD

[sush stdout] Expected 'old: /\nOLDPWD=/\n/\n', got 'old: /\n/\n'

stdout:
old: /
/
stderr:
toysh7 pwd with symlink and -P

[toysh stdout] Expected 'pwd:\nsymlink\npwd -P:\ntarget\n', got 'pwd:\ntarget\npwd -P:\ntarget\n'

stdout:
pwd:
target
pwd -P:
target
stderr:
toysh9 unset PWD; then pwd

[toysh status] Expected 0, got -6

stdout:
PWD=
/tmp/oil-spec-test/pwd
PWD=
stderr:
free(): double free detected in tcache 2
mksh12 remove pwd dir

stdout:
/tmp/oil-spec-test/pwd
status=0
status=1
stderr:
mksh: <stdin>[7]: pwd: can't determine current directory: No such file or directory
ksh12 remove pwd dir

[ksh stdout] Expected '/tmp/oil-spec-test/pwd\nstatus=0\n/tmp/oil-spec-test/pwd\nstatus=0\n' Got '/tmp/oil-spec-test/pwd\nstatus=0\nstatus=1\n'

stdout:
/tmp/oil-spec-test/pwd
status=0
status=1
stderr:
E: ksh: <stdin>[7]: pwd: can't determine current directory: No such file or directory
toysh12 remove pwd dir

[toysh stdout] Expected '/tmp/oil-spec-test/pwd\nstatus=0\n/tmp/oil-spec-test/pwd\nstatus=0\n' Got '/tmp/oil-spec-test/pwd\nstatus=0\nstatus=1\n'

stdout:
/tmp/oil-spec-test/pwd
status=0
status=1
stderr:
pwd: xgetcwd: No such file or directory
mksh13 pwd in symlinked dir on shell initialization

stdout:
target
target
stderr:
ksh13 pwd in symlinked dir on shell initialization

[ksh stdout] Expected 'symlink\ntarget\n', got 'target\ntarget\n'

stdout:
target
target
stderr:
toysh13 pwd in symlinked dir on shell initialization

[toysh stdout] Expected 'symlink\ntarget\n', got 'target\ntarget\n'
[toysh stderr] Expected u'', got 'free(): double free detected in tcache 2\n'
[toysh status] Expected 0, got -6

stdout:
target
target
stderr:
free(): double free detected in tcache 2
sush13 pwd in symlinked dir on shell initialization

[sush stdout] Expected 'symlink\ntarget\n', got 'target\ntarget\n'

stdout:
target
target
stderr:
brush13 pwd in symlinked dir on shell initialization

[brush stdout] Expected 'symlink\ntarget\n', got 'target\ntarget\n'

stdout:
target
target
stderr:
mksh16 cd to nonexistent dir

stdout:
status=2
stderr:
mksh: <stdin>[1]: cd: /nonexistent/dir: No such file or directory
ksh16 cd to nonexistent dir

[ksh stdout] Expected 'status=1\n', got 'status=2\n'

stdout:
status=2
stderr:
E: ksh: <stdin>[1]: cd: /nonexistent/dir: No such file or directory
toysh19 cd to symlink with -L and -P

[toysh stdout] Expected 'OK\nOK\nOK\n', got 'OK\n'

stdout:
OK
stderr:
sush19 cd to symlink with -L and -P

[sush stdout] Expected 'OK\nOK\nOK\n', got 'OK\nOK\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/19-sush/cd-symlink\n'

stdout:
OK
OK
/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/19-sush/cd-symlink
stderr:
sush: cd: too many arguments
sush: cd: too many arguments
toysh20 cd to relative path with -L and -P

[toysh stdout] Expected 'OK\nOK\nOK\n', got 'failed\n'
[toysh status] Expected 0, got 1

stdout:
failed
stderr:
sush20 cd to relative path with -L and -P

[sush stdout] Expected 'OK\nOK\nOK\n', got 'OK\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/20-sush/cd-symlink/subdir\n'

stdout:
OK
/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/20-sush/cd-symlink/subdir
stderr:
sush: cd: too many arguments
sush: cd: too many arguments
toysh22 CDPATH is respected

[toysh stdout] Expected '/tmp/spam/foo\nstatus=0\n/tmp/spam/foo\n', got 'status=1\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-toysh\n'

stdout:
status=1
/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-toysh
stderr:
cd: foo: No such file or directory
sush22 CDPATH is respected

[sush stdout] Expected '/tmp/spam/foo\nstatus=0\n/tmp/spam/foo\n', got 'status=1\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-sush\n'

stdout:
status=1
/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-sush
stderr:
sush: cd: "/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-sush/foo": No such file or directory
brush22 CDPATH is respected

[brush stdout] Expected '/tmp/spam/foo\nstatus=0\n/tmp/spam/foo\n', got 'status=1\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-brush\n'

stdout:
status=1
/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-brush
stderr:
cd: i/o error: No such file or directory (os error 2)
osh22 CDPATH is respected

[osh stdout] Expected '/tmp/spam/foo\nstatus=0\n/tmp/spam/foo\n', got 'status=1\n/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-osh\n'

stdout:
status=1
/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-osh
stderr:
  cd foo
     ^~~
[ stdin ]:5: cd '/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/22-osh/foo': No such file or directory
toysh23 Change directory in non-shell parent process (make or Python)

[toysh stdout] Expected '/cpan/Encode/Byte\n', got '\n'
[toysh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
set: bad --
Python PWD = '/home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-cd.test.sh.3659800/23-toysh'
Python argv = ['']
Traceback (most recent call last):
  File "<string>", line 10, in <module>
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 185, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 13] Permission denied
mksh24 What happens when inherited $PWD and current dir disagree?

stdout:
Python PWD = None
PWD = /tmp/osh-spec-cd/cpan/Encode
/tmp/osh-spec-cd/cpan/Encode
cd=0
PWD = /tmp/osh-spec-cd/cpan/Encode/Byte
/tmp/osh-spec-cd/cpan/Encode/Byte
stderr:
Python argv = ['mksh', '-c', '\necho "PWD = $PWD"; pwd\ncd Byte; echo cd=$?\necho "PWD = $PWD"; pwd\n']
ksh24 What happens when inherited $PWD and current dir disagree?

[ksh stdout] Expected "Python PWD = '/tmp/osh-spec-cd'\nPWD = /tmp/osh-spec-cd/cpan/Encode\n/tmp/osh-spec-cd/cpan/Encode\ncd=0\nPWD = /tmp/osh-spec-cd/cpan/Encode/Byte\n/tmp/osh-spec-cd/cpan/Encode/Byte\n" Got 'Python PWD = None\nPWD = /tmp/osh-spec-cd/cpan/Encode\n/tmp/osh-spec-cd/cpan/Encode\ncd=0\nPWD = /tmp/osh-spec-cd/cpan/Encode/Byte\n/tmp/osh-spec-cd/cpan/Encode/Byte\n'

stdout:
Python PWD = None
PWD = /tmp/osh-spec-cd/cpan/Encode
/tmp/osh-spec-cd/cpan/Encode
cd=0
PWD = /tmp/osh-spec-cd/cpan/Encode/Byte
/tmp/osh-spec-cd/cpan/Encode/Byte
stderr:
Python argv = ['ksh', '-c', '\necho "PWD = $PWD"; pwd\ncd Byte; echo cd=$?\necho "PWD = $PWD"; pwd\n']
toysh24 What happens when inherited $PWD and current dir disagree?

[toysh stdout] Expected "Python PWD = '/tmp/osh-spec-cd'\nPWD = /tmp/osh-spec-cd/cpan/Encode\n/tmp/osh-spec-cd/cpan/Encode\ncd=0\nPWD = /tmp/osh-spec-cd/cpan/Encode/Byte\n/tmp/osh-spec-cd/cpan/Encode/Byte\n" Got "Python PWD = '/tmp/osh-spec-cd'\n"
[toysh status] Expected 0, got 1
[toysh stderr] Found 'Traceback (most recent'

stdout:
Python PWD = '/tmp/osh-spec-cd'
stderr:
set: bad --
Python argv = ['']
Traceback (most recent call last):
  File "<string>", line 12, in <module>
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 185, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/wedge/oils-for-unix.org/pkg/python2/2.7.18/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 13] Permission denied
sush24 What happens when inherited $PWD and current dir disagree?

[sush stdout] Expected "Python PWD = '/tmp/osh-spec-cd'\nPWD = /tmp/osh-spec-cd/cpan/Encode\n/tmp/osh-spec-cd/cpan/Encode\ncd=0\nPWD = /tmp/osh-spec-cd/cpan/Encode/Byte\n/tmp/osh-spec-cd/cpan/Encode/Byte\n" Got 'Python PWD = None\nPWD = \n/tmp/osh-spec-cd/cpan/Encode\ncd=0\nPWD = /tmp/osh-spec-cd/cpan/Encode/Byte\n/tmp/osh-spec-cd/cpan/Encode/Byte\n'

stdout:
Python PWD = None
PWD = 
/tmp/osh-spec-cd/cpan/Encode
cd=0
PWD = /tmp/osh-spec-cd/cpan/Encode/Byte
/tmp/osh-spec-cd/cpan/Encode/Byte
stderr:
Python argv = ['/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush', '-c', '\necho "PWD = $PWD"; pwd\ncd Byte; echo cd=$?\necho "PWD = $PWD"; pwd\n']
mksh25 Survey of getcwd() syscall

stdout:
2 err.txt
stderr:
ksh25 Survey of getcwd() syscall

[ksh stdout] Expected '1 err.txt\n', got '2 err.txt\n'

stdout:
2 err.txt
stderr:
toysh25 Survey of getcwd() syscall

[toysh stdout] Expected '1 err.txt\n', got '2 err.txt\n'

stdout:
2 err.txt
stderr:
sush25 Survey of getcwd() syscall

[sush stdout] Expected '1 err.txt\n', got '4 err.txt\n'

stdout:
4 err.txt
stderr:
brush25 Survey of getcwd() syscall

[brush stdout] Expected '1 err.txt\n', got '2 err.txt\n'

stdout:
2 err.txt
stderr:
osh25 Survey of getcwd() syscall

[osh stdout] Expected '1 err.txt\n', got '2 err.txt\n'

stdout:
2 err.txt
stderr: