__ builtin-fc shell: /home/uke/oil/bin/osh which $SH: case 0: fc -l lists history commands argv: /home/uke/oil/bin/osh case 1: fc -ln lists history commands without numbers argv: /home/uke/oil/bin/osh case 2: fc -lr lists history commands in reverse order argv: /home/uke/oil/bin/osh case 3: fc -lnr lists history commands without numbers in reverse order argv: /home/uke/oil/bin/osh case 4: fc -l lists history commands with default page size argv: /home/uke/oil/bin/osh case 5: fc -l [first] where first is an index argv: /home/uke/oil/bin/osh case 6: fc -l [first] where first is an offset from current command argv: /home/uke/oil/bin/osh case 7: fc -l [first] [last] where first and last are indexes argv: /home/uke/oil/bin/osh case 8: fc -l [first] [last] where first and last are offsets from current command argv: /home/uke/oil/bin/osh case 9: fc -l [first] [last] where first and last are reversed indexes argv: /home/uke/oil/bin/osh case 10: fc -lr [first] [last] where first and last are reversed indexes does not undo reverse argv: /home/uke/oil/bin/osh case 11: fc ignores too many args argv: /home/uke/oil/bin/osh case 12: fc errors out on too many args with strict_arg_parse argv: /home/uke/oil/bin/osh case 13: fc -l when no history is present argv: /home/uke/oil/bin/osh builtin-fc: note: Got 2 allowed Oils failures __ builtin-history shell: /home/uke/oil/bin/osh which $SH: case 0: history -a argv: /home/uke/oil/bin/osh case 1: history -w writes out the in-memory history to the history file argv: /home/uke/oil/bin/osh case 2: history -r reads from the history file, and appends it to the current history argv: /home/uke/oil/bin/osh case 3: history -n reads *new* commands from the history file, and appends them to the current history argv: /home/uke/oil/bin/osh case 4: history -c clears in-memory history argv: /home/uke/oil/bin/osh case 5: history -d to delete 1 item argv: /home/uke/oil/bin/osh case 6: history -d to delete history from end argv: /home/uke/oil/bin/osh case 7: HISTFILE is defined initially argv: /home/uke/oil/bin/osh case 8: HISTFILE must point to a file argv: /home/uke/oil/bin/osh case 9: HISTFILE set to array argv: /home/uke/oil/bin/osh case 10: HISTFILE unset argv: /home/uke/oil/bin/osh case 11: history usage argv: /home/uke/oil/bin/osh case 12: HISTSIZE shrinks the in-memory history when changed argv: /home/uke/oil/bin/osh case 13: HISTFILESIZE shrinks the history file when changed argv: /home/uke/oil/bin/osh case 14: recording history can be toggled with set -o/+o history argv: /home/uke/oil/bin/osh case 15: shopt histappend toggle check argv: /home/uke/oil/bin/osh case 16: shopt histappend - osh ignores shopt and appends, bash sometimes overwrites argv: /home/uke/oil/bin/osh builtin-history: note: Got 9 allowed Oils failures __ interactive shell: /home/uke/oil/bin/osh which $SH: case 0: 'exit' in oshrc (regression) argv: /home/uke/oil/bin/osh case 1: fatal errors continue argv: /home/uke/oil/bin/osh case 2: interactive shell loads rcfile (when combined with -c) argv: /home/uke/oil/bin/osh case 3: --rcfile with parse error - shell is executed anyway argv: /home/uke/oil/bin/osh case 4: interactive shell loads files in rcdir (when combined with -c) argv: /home/uke/oil/bin/osh case 5: nonexistent --rcdir is ignored argv: /home/uke/oil/bin/osh case 6: shell doesn't load rcfile/rcdir if --norc is given argv: /home/uke/oil/bin/osh case 7: interactive shell runs PROMPT_COMMAND after each command argv: /home/uke/oil/bin/osh case 8: parse error in PROMPT_COMMAND argv: /home/uke/oil/bin/osh case 9: runtime error in PROMPT_COMMAND argv: /home/uke/oil/bin/osh case 10: Error message with bad oshrc file (currently ignored) argv: /home/uke/oil/bin/osh case 11: PROMPT_COMMAND can see $?, like bash argv: /home/uke/oil/bin/osh case 12: PROMPT_COMMAND that writes to BASH_REMATCH argv: /home/uke/oil/bin/osh case 13: NO ASSERTIONS: Are startup files sourced before or after job control? argv: /home/uke/oil/bin/osh case 14: HISTFILE is written in interactive shell argv: /home/uke/oil/bin/osh case 15: HISTFILE default value argv: /home/uke/oil/bin/osh case 16: HISTFILE=my-history loads history from that file, and writes back to it argv: /home/uke/oil/bin/osh case 17: HISTFILE=my-history with history -a argv: /home/uke/oil/bin/osh __ sh-options shell: /home/uke/oil/bin/osh which $SH: case 0: $- with -c argv: /home/uke/oil/bin/osh case 1: $- with pipefail argv: /home/uke/oil/bin/osh case 2: $- and more options argv: /home/uke/oil/bin/osh case 3: $- with interactive shell argv: /home/uke/oil/bin/osh case 4: pass short options like sh -e argv: /home/uke/oil/bin/osh case 5: pass long options like sh -o errexit argv: /home/uke/oil/bin/osh case 6: pass shopt options like sh -O nullglob argv: /home/uke/oil/bin/osh case 7: set -o vi/emacs argv: /home/uke/oil/bin/osh case 8: vi and emacs are mutually exclusive argv: /home/uke/oil/bin/osh case 9: interactive shell starts with emacs mode on argv: /home/uke/oil/bin/osh case 10: nounset argv: /home/uke/oil/bin/osh case 11: -u is nounset argv: /home/uke/oil/bin/osh case 12: -n for no execution (useful with --ast-output) argv: /home/uke/oil/bin/osh case 13: pipefail argv: /home/uke/oil/bin/osh case 14: shopt -p -o prints 'set' options argv: /home/uke/oil/bin/osh case 15: shopt -o prints 'set' options argv: /home/uke/oil/bin/osh case 16: shopt -p prints 'shopt' options argv: /home/uke/oil/bin/osh case 17: shopt with no flags prints options argv: /home/uke/oil/bin/osh case 18: noclobber off argv: /home/uke/oil/bin/osh case 19: noclobber on argv: /home/uke/oil/bin/osh case 20: noclobber on <> argv: /home/uke/oil/bin/osh case 21: noclobber on >> argv: /home/uke/oil/bin/osh case 22: noclobber on &> > argv: /home/uke/oil/bin/osh case 23: noclobber on &>> >> argv: /home/uke/oil/bin/osh case 24: set without args lists variables argv: /home/uke/oil/bin/osh case 25: set without args and array variables argv: /home/uke/oil/bin/osh case 26: set without args and assoc array variables (not in OSH) argv: /home/uke/oil/bin/osh case 27: shopt -q argv: /home/uke/oil/bin/osh case 28: shopt -q invalid argv: /home/uke/oil/bin/osh case 29: shopt -s strict:all argv: /home/uke/oil/bin/osh case 30: shopt allows for backward compatibility like bash argv: /home/uke/oil/bin/osh case 31: shopt -p validates option names argv: /home/uke/oil/bin/osh case 32: shopt -p -o validates option names argv: /home/uke/oil/bin/osh case 33: stubbed out bash options argv: /home/uke/oil/bin/osh case 34: shopt -s nounset works in YSH, not in bash argv: /home/uke/oil/bin/osh case 35: Unimplemented options - print, query, set, unset argv: /home/uke/oil/bin/osh case 36: Unimplemented options - OSH shopt -s ignore_shopt_not_impl argv: /home/uke/oil/bin/osh case 37: shopt -p exit code (regression) argv: /home/uke/oil/bin/osh case 38: no-ops not shown by shopt -p argv: /home/uke/oil/bin/osh sh-options: note: Got 1 allowed Oils failures __ sh-usage shell: /home/uke/oil/bin/osh which $SH: case 0: sh -c argv: /home/uke/oil/bin/osh case 1: empty -c input argv: /home/uke/oil/bin/osh case 2: sh +c is accepted argv: /home/uke/oil/bin/osh case 3: empty stdin argv: /home/uke/oil/bin/osh case 4: sh - and sh -- stop flag processing argv: /home/uke/oil/bin/osh case 5: shell obeys --help (regression for OSH) argv: /home/uke/oil/bin/osh case 6: args are passed argv: /home/uke/oil/bin/osh case 7: args that look like flags are passed after script argv: /home/uke/oil/bin/osh case 8: args that look like flags are passed after -c argv: /home/uke/oil/bin/osh case 9: exit with explicit arg argv: /home/uke/oil/bin/osh case 10: exit with no args argv: /home/uke/oil/bin/osh case 11: --rcfile in non-interactive shell prints warnings argv: /home/uke/oil/bin/osh case 12: accepts -l flag argv: /home/uke/oil/bin/osh case 13: accepts --login flag (dash and mksh don't accept long flags) argv: /home/uke/oil/bin/osh case 14: osh --eval argv: /home/uke/oil/bin/osh case 15: Set LC_ALL LC_CTYPE LC_COLLATE LANG - affects glob ? argv: /home/uke/oil/bin/osh case 16: LC_CTYPE=invalid argv: /home/uke/oil/bin/osh __ var-num shell: /home/uke/oil/bin/osh which $SH: case 0: Normal and braced argv: /home/uke/oil/bin/osh case 1: In function argv: /home/uke/oil/bin/osh case 2: $0 with -c argv: /home/uke/oil/bin/osh case 3: $0 with stdin argv: /home/uke/oil/bin/osh case 4: $0 with -i argv: /home/uke/oil/bin/osh case 5: $0 with filename argv: /home/uke/oil/bin/osh case 6: $@ with filename argv: /home/uke/oil/bin/osh test/spec-runner.sh src-tree-py spec-files _tmp/spec/interactive-osh builtin-fc builtin-history interactive sh-options sh-usage var-num src_tree.py: Wrote 6 HTML files -> _tmp/spec/interactive-osh done: all-tests-to-html *** All 6 tests PASSED test/spec-version.sh: line 76: yash: command not found Results: file:///home/uke/oil/_tmp/spec/interactive-osh/index.html real 0m14.321s user 0m9.492s sys 0m4.948s