introspect () { run-file introspect "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" }
spec test index / oilshell.org
| status | bash | osh | |
| pass | 12 | 13 | |
| BUG | 1 | 0 | |
| total | 13 | 13 | |
| case | bash | osh | description | 
| 0 | pass | pass | ${FUNCNAME[@]} array | 
| 1 | BUG | pass | FUNCNAME with source (scalar or array) | 
| details | |||
| 2 | pass | pass | BASH_SOURCE and BASH_LINENO scalar or array (e.g. for virtualenv) | 
| 3 | pass | pass | ${FUNCNAME} with prefix/suffix operators | 
| 4 | pass | pass | operators on FUNCNAME | 
| 5 | pass | pass | ${FUNCNAME} and "set -u" (OSH regression) | 
| 6 | pass | pass | $((BASH_LINENO)) (scalar form in arith) | 
| 7 | pass | pass | ${BASH_SOURCE[@]} with source and function name | 
| 8 | pass | pass | ${BASH_SOURCE[@]} with line numbers | 
| 9 | pass | pass | ${BASH_LINENO[@]} is a stack of line numbers for function calls | 
| 10 | pass | pass | Locations with temp frame | 
| 11 | pass | pass | Locations when sourcing | 
| 12 | pass | pass | Sourcing inside function grows the debug stack | 
25 passed, 0 OK, 0 not implemented, 1 BUG, 0 failed, 0 timeouts, 0 cases skipped
| bash | 1 FUNCNAME with source (scalar or array) stdout: ['  @', 'source', 'f', 'g']
['  0', 'source']
['${}', 'source']
['  $', 'source']
-----
['  @']
['  0', '']
['${}', '']
['  $', '']
-----
[]
-----
['  @', 'A']
['  0', 'A']
['${}', 'A']
['  $', 'A']
stderr:  |