Results for builtin-history.test.sh

statusbashdashashzshmkshkshtoyshsushbrushosh
pass 7111111019
ok 1000000001
FAIL 01071010101617167
TIME 9696660000
total17171717171717171717
casebashdashashzshmkshkshtoyshsushbrushoshdescription
0TIME TIME TIME TIME TIME TIME FAIL FAIL FAIL pass history -a
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
1pass FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL history -w writes out the in-memory history to the history file
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
2pass FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL pass history -r reads from the history file, and appends it to the current history
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
3pass FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL history -n reads *new* commands from the history file, and appends them to the current history
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
4TIME FAIL TIME FAIL FAIL FAIL FAIL FAIL FAIL pass history -c clears in-memory history
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
5pass pass pass pass pass pass pass FAIL pass pass history -d to delete 1 item
details
6TIME FAIL TIME FAIL FAIL FAIL FAIL FAIL FAIL FAIL history -d to delete history from end
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
7TIME TIME TIME TIME TIME TIME FAIL FAIL FAIL pass HISTFILE is defined initially
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
8TIME TIME TIME TIME TIME TIME FAIL FAIL FAIL pass HISTFILE must point to a file
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
9TIME TIME TIME TIME TIME TIME FAIL FAIL FAIL pass HISTFILE set to array
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
10TIME TIME TIME TIME TIME TIME FAIL FAIL FAIL pass HISTFILE unset
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
11ok FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL pass history usage
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
12pass FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL HISTSIZE shrinks the in-memory history when changed
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
13pass FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL HISTFILESIZE shrinks the history file when changed
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
14TIME TIME TIME TIME TIME TIME FAIL FAIL FAIL FAIL recording history can be toggled with set -o/+o history
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
15pass FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL FAIL shopt histappend toggle check
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
16TIME FAIL TIME FAIL FAIL FAIL FAIL FAIL FAIL ok shopt histappend - osh ignores shopt and appends, bash sometimes overwrites
detailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetailsdetails
23 passed, 2 OK, 0 not implemented, 0 BUG, 103 failed, 42 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

toysh0 history -a

[toysh stdout] Expected '1\nHISTFILE=tmp\necho 1\nhistory -a\n2\nHISTFILE=tmp\necho 1\nhistory -a\n^D\n' Got '1\n2\n'
[toysh status] Expected 0 Got -6

stdout:
1
2
stderr:
$ $ sh: history: No such file or directory
$ $ $ $ sh: history: No such file or directory
$ cat: tmp: No such file or directory
$ $ $ $ cat: tmp: No such file or directory
$ $ munmap_chunk(): invalid pointer
sush0 history -a

[sush stdout] Expected '1\nHISTFILE=tmp\necho 1\nhistory -a\n2\nHISTFILE=tmp\necho 1\nhistory -a\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: -i: invalid option
brush0 history -a

[brush stdout] Expected '1\nHISTFILE=tmp\necho 1\nhistory -a\n2\nHISTFILE=tmp\necho 1\nhistory -a\n^D\n' Got '1\nHISTFILE=tmp\necho 1\nhistory -a\n2\nHISTFILE=tmp\necho 1\nhistory -a\n'

stdout:
1
HISTFILE=tmp
echo 1
history -a
2
HISTFILE=tmp
echo 1
history -a
stderr:
exit
dash1 history -w writes out the in-memory history to the history file

[dash stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
dash: 5: history: not found
dash: 7: history: not found
ash1 history -w writes out the in-memory history to the history file

[ash stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
zsh1 history -w writes out the in-memory history to the history file

[zsh stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
zsh: bad option: -c
zsh: bad option: -w
mksh1 history -w writes out the in-memory history to the history file

[mksh stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
mksh: <stdin>[5]: fc: history functions not available
mksh: <stdin>[7]: fc: history functions not available
ksh1 history -w writes out the in-memory history to the history file

[ksh stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
E: ksh: <stdin>[5]: fc: history functions not available
E: ksh: <stdin>[7]: fc: history functions not available
toysh1 history -w writes out the in-memory history to the history file

[toysh stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
sh: history: No such file or directory
sh: history: No such file or directory
sush1 history -w writes out the in-memory history to the history file

[sush stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: history: -w: invalid option
brush1 history -w writes out the in-memory history to the history file

[brush stdout] Expected 'found=1\n' Got 'found=0\n'

stdout:
found=0
stderr:
history: history not available in this shell
history: history not available in this shell
osh1 history -w writes out the in-memory history to the history file

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

stdout:
found=0
stderr:
  history -w # Overwrite history file
          ^~
[ stdin ]:7: 'history' doesn't accept flag -w
dash2 history -r reads from the history file, and appends it to the current history

[dash stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
dash: 5: history: not found
dash: 7: history: not found
dash: 8: history: not found
dash: 10: history: not found
ash2 history -r reads from the history file, and appends it to the current history

[ash stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
zsh2 history -r reads from the history file, and appends it to the current history

[zsh stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
zsh: bad option: -c
fc: no such event: 1
fc: no such event: 1
fc: no such event: 1
mksh2 history -r reads from the history file, and appends it to the current history

[mksh stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
mksh: <stdin>[5]: fc: history functions not available
mksh: <stdin>[7]: fc: history functions not available
mksh: <stdin>[8]: fc: history functions not available
mksh: <stdin>[10]: fc: history functions not available
ksh2 history -r reads from the history file, and appends it to the current history

[ksh stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
E: ksh: <stdin>[5]: fc: history functions not available
E: ksh: <stdin>[7]: fc: history functions not available
E: ksh: <stdin>[8]: fc: history functions not available
E: ksh: <stdin>[10]: fc: history functions not available
toysh2 history -r reads from the history file, and appends it to the current history

[toysh stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sush2 history -r reads from the history file, and appends it to the current history

[sush stdout] Expected '20\n' Got '10\n'

stdout:
10
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: history: -r: invalid option
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: history: -r: invalid option
brush2 history -r reads from the history file, and appends it to the current history

[brush stdout] Expected '20\n' Got '0\n'

stdout:
0
stderr:
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
dash3 history -n reads *new* commands from the history file, and appends them to the current history

[dash stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
dash: 7: history: not found
dash: 8: history: not found
dash: 9: history: not found
dash: 11: history: not found
dash: 12: history: not found
ash3 history -n reads *new* commands from the history file, and appends them to the current history

[ash stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
zsh3 history -n reads *new* commands from the history file, and appends them to the current history

[zsh stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
zsh: bad option: -c
fc: no such event: 1
fc: no such event: 1
fc: no such event: 1
fc: no such event: 1
mksh3 history -n reads *new* commands from the history file, and appends them to the current history

[mksh stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
mksh: <stdin>[7]: fc: history functions not available
mksh: <stdin>[8]: fc: history functions not available
mksh: <stdin>[9]: fc: history functions not available
mksh: <stdin>[11]: fc: history functions not available
mksh: <stdin>[12]: fc: history functions not available
ksh3 history -n reads *new* commands from the history file, and appends them to the current history

[ksh stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
E: ksh: <stdin>[7]: fc: history functions not available
E: ksh: <stdin>[8]: fc: history functions not available
E: ksh: <stdin>[9]: fc: history functions not available
E: ksh: <stdin>[11]: fc: history functions not available
E: ksh: <stdin>[12]: fc: history functions not available
toysh3 history -n reads *new* commands from the history file, and appends them to the current history

[toysh stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sush3 history -n reads *new* commands from the history file, and appends them to the current history

[sush stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 8: history: -r: invalid option
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: history: -n: invalid option
brush3 history -n reads *new* commands from the history file, and appends them to the current history

[brush stdout] Expected '10\n10\n' Got '0\n0\n'

stdout:
0
0
stderr:
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
osh3 history -n reads *new* commands from the history file, and appends them to the current history

[osh stdout] Expected '10\n10\n' Got '10\n0\n'

stdout:
10
0
stderr:
  HISTFILE=tmp2 history -n
                        ^~
[ stdin ]:9: 'history' doesn't accept flag -n
dash4 history -c clears in-memory history

[dash stdout] Expected '1\n^D\n' Got ''

stdout:
stderr: 
dash: 0: Illegal option --
zsh4 history -c clears in-memory history

[zsh stdout] Expected '1\n^D\n' Got ''

stdout:
stderr: 
zsh: no such option: norc
mksh4 history -c clears in-memory history

[mksh stdout] Expected '1\n^D\n' Got ''

stdout:
stderr: 
mksh: mksh: --: unknown option
ksh4 history -c clears in-memory history

[ksh stdout] Expected '1\n^D\n' Got ''

stdout:
stderr: 
E: ksh: --: unknown option
toysh4 history -c clears in-memory history

[toysh stdout] Expected '1\n^D\n' Got '0\n'
[toysh status] Expected 0 Got -6

stdout:
0
stderr:
$ $ $ sh: history: No such file or directory
$ sh: history: No such file or directory
$ munmap_chunk(): invalid pointer
sush4 history -c clears in-memory history

[sush stdout] Expected '1\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: --norc: invalid option
brush4 history -c clears in-memory history

[brush stdout] Expected '1\n^D\n' Got '1\n'

stdout:
1
stderr:
exit
sush5 history -d to delete 1 item

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

stdout:
status=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: history: -r: invalid option
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: history: -d: invalid option
dash6 history -d to delete history from end

[dash stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got ''
[dash status] Expected 0 Got 2

stdout:
stderr: 
dash: 0: Illegal option --
zsh6 history -d to delete history from end

[zsh stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got ''
[zsh status] Expected 0 Got 1

stdout:
stderr: 
zsh: no such option: norc
mksh6 history -d to delete history from end

[mksh stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got ''
[mksh status] Expected 0 Got 1

stdout:
stderr: 
mksh: mksh: --: unknown option
ksh6 history -d to delete history from end

[ksh stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got ''
[ksh status] Expected 0 Got 1

stdout:
stderr: 
E: ksh: --: unknown option
toysh6 history -d to delete history from end

[toysh stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got '42\n43\n44\nstatus=127\nstatus=127\nstatus=127\nstatus=127\n'
[toysh status] Expected 0 Got 139

stdout:
42
43
44
status=127
status=127
status=127
status=127
stderr:
$ $ $ $ $ $ sh: history: No such file or directory
$ $ sh: history: No such file or directory
$ $ $ sh: history: No such file or directory
$ $ sh: history: No such file or directory
$ $ sh: history: No such file or directory
$ $ $ 
sush6 history -d to delete history from end

[sush stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: --norc: invalid option
brush6 history -d to delete history from end

[brush stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=2\n'

stdout:
42
43
44
status=0
status=0
status=0
status=2
stderr:
index past end of history
exit
osh6 history -d to delete history from end

[osh stdout] Expected '42\n43\n44\nstatus=0\nstatus=0\nstatus=0\nstatus=1\n^D\n' Got '42\n43\n44\nstatus=0\nstatus=2\nstatus=2\nstatus=2\n^D\n'

stdout:
42
43
44
status=0
status=2
status=2
status=2
^D
stderr:
osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$   history -d -1
             ^~
[ stdin -i ]:11: 'history' got invalid integer for -d: -1
osh-0.35$ osh-0.35$   history -d -2
             ^~
[ stdin -i ]:13: 'history' got invalid integer for -d: -2
osh-0.35$ osh-0.35$   history -d 99
  ^~~~~~~
[ stdin -i ]:15: 'history' couldn't find item 99
osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ 
toysh7 HISTFILE is defined initially

[toysh stdout] Expected 'exists\n^D\n' Got 'exists\n'
[toysh status] Expected 0 Got -6

stdout:
exists
stderr:
$ $ $ $ munmap_chunk(): invalid pointer
sush7 HISTFILE is defined initially

[sush stdout] Expected 'exists\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: -i: invalid option
brush7 HISTFILE is defined initially

[brush stdout] Expected 'exists\n^D\n' Got 'exists\n'

stdout:
exists
stderr:
exit
toysh8 HISTFILE must point to a file

[toysh stdout] Expected 'status=1\n^D\n' Got 'status=127\n'
[toysh status] Expected 0 Got -6

stdout:
status=127
stderr:
$ $ $ sh: history: No such file or directory
$ $ $ munmap_chunk(): invalid pointer
sush8 HISTFILE must point to a file

[sush stdout] Expected 'status=1\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: -i: invalid option
brush8 HISTFILE must point to a file

[brush stdout] Expected 'status=1\n^D\n' Got 'status=1\n'

stdout:
status=1
stderr:
 WARN not yet implemented: history -r is not yet implemented
exit
toysh9 HISTFILE set to array

[toysh stdout] Expected 'status=1\n^D\n' Got 'status=127\n'
[toysh status] Expected 0 Got -6

stdout:
status=127
stderr:
$ $ sh: syntax error: a
$ sh: history: No such file or directory
$ $ $ munmap_chunk(): invalid pointer
sush9 HISTFILE set to array

[sush stdout] Expected 'status=1\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: -i: invalid option
brush9 HISTFILE set to array

[brush stdout] Expected 'status=1\n^D\n' Got 'status=0\n'

stdout:
status=0
stderr:
exit
toysh10 HISTFILE unset

[toysh stdout] Expected 'status=1\n^D\n' Got 'status=127\n'
[toysh status] Expected 0 Got -6

stdout:
status=127
stderr:
$ $ $ sh: history: No such file or directory
$ $ $ munmap_chunk(): invalid pointer
sush10 HISTFILE unset

[sush stdout] Expected 'status=1\n^D\n' Got ''
[sush status] Expected 0 Got 2

stdout:
stderr: 
: line : set: -i: invalid option
brush10 HISTFILE unset

[brush stdout] Expected 'status=1\n^D\n' Got 'status=0\n'

stdout:
status=0
stderr:
exit
bash11 history usage

stdout:
status=1
status=1
stderr:
bash: line 1: history: not-a-number: numeric argument required
bash: line 4: history: too many arguments
dash11 history usage

[dash stdout] Expected 'status=2\nstatus=2\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
dash: 1: history: not found
dash: 4: history: not found
ash11 history usage

[ash stdout] Expected 'status=2\nstatus=2\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
zsh11 history usage

[zsh stdout] Expected 'status=2\nstatus=2\n' Got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
fc: event not found: not-a-number
fc: event not found: too-many
mksh11 history usage

[mksh stdout] Expected 'status=2\nstatus=2\n' Got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
mksh: <stdin>[1]: fc: history functions not available
mksh: <stdin>[4]: fc: history functions not available
ksh11 history usage

[ksh stdout] Expected 'status=2\nstatus=2\n' Got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
E: ksh: <stdin>[1]: fc: history functions not available
E: ksh: <stdin>[4]: fc: history functions not available
toysh11 history usage

[toysh stdout] Expected 'status=2\nstatus=2\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
sh: history: No such file or directory
sh: history: No such file or directory
sush11 history usage

[sush stdout] Expected 'status=2\nstatus=2\n' Got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: history: not-a-number: invalid option
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: history: 3: invalid option
brush11 history usage

[brush stdout] Expected 'status=2\nstatus=2\n' Got 'status=99\nstatus=99\n'

stdout:
status=99
status=99
stderr:
history: history not available in this shell
history: history not available in this shell
dash12 HISTSIZE shrinks the in-memory history when changed

[dash stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
dash: 4: history: not found
dash: 5: history: not found
dash: 6: history: not found
dash: 8: history: not found
ash12 HISTSIZE shrinks the in-memory history when changed

[ash stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
zsh12 HISTSIZE shrinks the in-memory history when changed

[zsh stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
zsh: bad option: -c
fc: no such event: 1
fc: no such event: 1
fc: no such event: 1
mksh12 HISTSIZE shrinks the in-memory history when changed

[mksh stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
mksh: <stdin>[4]: fc: history functions not available
mksh: <stdin>[5]: fc: history functions not available
mksh: <stdin>[6]: fc: history functions not available
mksh: <stdin>[8]: fc: history functions not available
ksh12 HISTSIZE shrinks the in-memory history when changed

[ksh stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
E: ksh: <stdin>[4]: fc: history functions not available
E: ksh: <stdin>[5]: fc: history functions not available
E: ksh: <stdin>[6]: fc: history functions not available
E: ksh: <stdin>[8]: fc: history functions not available
toysh12 HISTSIZE shrinks the in-memory history when changed

[toysh stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sh: history: No such file or directory
sush12 HISTSIZE shrinks the in-memory history when changed

[sush stdout] Expected '10\n5\n' Got '10\n10\n'

stdout:
10
10
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: history: -r: invalid option
brush12 HISTSIZE shrinks the in-memory history when changed

[brush stdout] Expected '10\n5\n' Got '0\n0\n'

stdout:
0
0
stderr:
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
history: history not available in this shell
osh12 HISTSIZE shrinks the in-memory history when changed

[osh stdout] Expected '10\n5\n' Got '10\n10\n'

stdout:
10
10
stderr:
dash13 HISTFILESIZE shrinks the history file when changed

[dash stdout] Expected '5\n' Got '1\n'

stdout:
1
stderr:
ash13 HISTFILESIZE shrinks the history file when changed

[ash stdout] Expected '5\n' Got '1\n'

stdout:
1
stderr:
zsh13 HISTFILESIZE shrinks the history file when changed

[zsh stdout] Expected '5\n' Got '10\n'

stdout:
10
stderr:
mksh13 HISTFILESIZE shrinks the history file when changed

[mksh stdout] Expected '5\n' Got '1\n'

stdout:
1
stderr:
ksh13 HISTFILESIZE shrinks the history file when changed

[ksh stdout] Expected '5\n' Got '1\n'

stdout:
1
stderr:
toysh13 HISTFILESIZE shrinks the history file when changed

[toysh stdout] Expected '5\n' Got '10\n'

stdout:
10
stderr:
sush13 HISTFILESIZE shrinks the history file when changed

[sush stdout] Expected '5\n' Got '10\n'

stdout:
10
stderr:
brush13 HISTFILESIZE shrinks the history file when changed

[brush stdout] Expected '5\n' Got '10\n'

stdout:
10
stderr:
osh13 HISTFILESIZE shrinks the history file when changed

[osh stdout] Expected '5\n' Got '10\n'

stdout:
10
stderr:
toysh14 recording history can be toggled with set -o/+o history

[toysh stdout] Expected '^D\nstatus=1\nstatus=0\n' Got ''
[toysh status] Expected 0 Got -6

stdout:
stderr: 
$ set: bad -o history
$ $ set: bad -o history
$ $ munmap_chunk(): invalid pointer
sush14 recording history can be toggled with set -o/+o history

[sush stdout] Expected '^D\nstatus=1\nstatus=0\n' Got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
: line : set: -i: invalid option
brush14 recording history can be toggled with set -o/+o history

[brush stdout] Expected '^D\nstatus=1\nstatus=0\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
exit
osh14 recording history can be toggled with set -o/+o history

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

stdout:
^D
status=0
status=0
stderr:
  shopt -s globstar  # long overdue, try out wc -l **/*.py
  ^~~~~
/home/andy/git/dotfiles//interactive.bash:23: 'shopt' got invalid option 'globstar'
[osh] hoover /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-history.test.sh/14-osh$   set +o history
  ^~~
[ stdin -i ]:1: 'set' got invalid option 'history'
[osh] hoover /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-history.test.sh/14-osh$ [osh] hoover /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-history.test.sh/14-osh$   set -o history
  ^~~
[ stdin -i ]:3: 'set' got invalid option 'history'
[osh] hoover /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-history.test.sh/14-osh$ [osh] hoover /home/andy/git/oils-for-unix/oils/_tmp/spec-tmp/builtin-history.test.sh/14-osh$ 
dash15 shopt histappend toggle check

[dash stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
dash: 1: shopt: not found
dash: 3: shopt: not found
dash: 4: shopt: not found
dash: 6: shopt: not found
ash15 shopt histappend toggle check

[ash stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
ash: shopt: not found
ash: shopt: not found
ash: shopt: not found
ash: shopt: not found
zsh15 shopt histappend toggle check

[zsh stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
zsh: command not found: shopt
zsh: command not found: shopt
zsh: command not found: shopt
zsh: command not found: shopt
mksh15 shopt histappend toggle check

[mksh stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[3]: shopt: not found
mksh: <stdin>[4]: shopt: not found
mksh: <stdin>[6]: shopt: not found
ksh15 shopt histappend toggle check

[ksh stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=127\nstatus=127\n'

stdout:
status=127
status=127
stderr:
E: ksh: <stdin>[1]: shopt: inaccessible or not found
E: ksh: <stdin>[3]: shopt: inaccessible or not found
E: ksh: <stdin>[4]: shopt: inaccessible or not found
E: ksh: <stdin>[6]: shopt: inaccessible or not found
toysh15 shopt histappend toggle check

[toysh stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=127\nstatus=127\n'
[toysh status] Expected 0 Got -6

stdout:
status=127
status=127
stderr:
sh: shopt: No such file or directory
sh: shopt: No such file or directory
sh: shopt: No such file or directory
sh: shopt: No such file or directory
munmap_chunk(): invalid pointer
sush15 shopt histappend toggle check

[sush stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=1\nhistappend off\nstatus=0\nhistappend off\n'

stdout:
status=1
histappend      off
status=0
histappend      off
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: shopt: histappend: not supported yet
brush15 shopt histappend toggle check

[brush stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n'

stdout:
status=0
shopt -s histappend
status=0
shopt -u histappend
stderr:
osh15 shopt histappend toggle check

[osh stdout] Expected 'status=0\nshopt -s histappend\nstatus=0\nshopt -u histappend\n^D\n' Got 'status=2\nstatus=2\n'

stdout:
status=2
status=2
stderr:
  shopt -s histappend
  ^~~~~
[ stdin ]:1: 'shopt' got invalid option 'histappend'
  shopt -p histappend
  ^~~~~
[ stdin ]:3: 'shopt' got invalid option 'histappend'
  shopt -u histappend
  ^~~~~
[ stdin ]:4: 'shopt' got invalid option 'histappend'
  shopt -p histappend
  ^~~~~
[ stdin ]:6: 'shopt' got invalid option 'histappend'
dash16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[dash stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
dash: 9: [[: not found
dash: 0: Illegal option --
dash: 9: [[: not found
dash: 0: Illegal option --
zsh16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[zsh stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
zsh: no such option: norc
zsh: no such option: norc
mksh16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[mksh stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
mksh: mksh: --: unknown option
mksh: mksh: --: unknown option
ksh16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[ksh stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
E: ksh: --: unknown option
E: ksh: --: unknown option
toysh16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[toysh stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got ''
[toysh status] Expected 0 Got -6

stdout:
stderr: 
$ $ sh: shopt: No such file or directory
$ $ $ $ munmap_chunk(): invalid pointer
sush16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[sush stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
: line : set: --norc: invalid option
: line : set: --norc: invalid option
brush16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

[brush stdout] Expected '^D\nstatus=0\n^D\nstatus=1\n' Got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
exit
exit
osh16 shopt histappend - osh ignores shopt and appends, bash sometimes overwrites

stdout:
^D
status=0
^D
status=0
stderr:
osh-0.35$ osh-0.35$     shopt -s histappend
    ^~~~~
[ stdin -i ]:2: 'shopt' got invalid option 'histappend'
osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$     shopt -u histappend
    ^~~~~
[ stdin -i ]:2: 'shopt' got invalid option 'histappend'
osh-0.35$ osh-0.35$ osh-0.35$ osh-0.35$