Results for ysh-proc.test.sh

statusoshosh_ALT
pass 2929
FAIL 11
total3030
caseoshosh_ALTdescription
0pass pass Open proc (any number of args)
1pass pass Closed proc with no args, passed too many
2pass pass Open proc has ARGV
3pass pass Closed proc has empty "$@" or ARGV
4pass pass Proc with default args
5pass pass Proc with word params
6pass pass Proc with ... "rest" word params
7pass pass word rest params 2
8pass pass proc with typed args
9pass pass Proc name-with-hyphen
10pass pass Proc with block arg
11pass pass proc returning wrong type
12pass pass proc returning invalid string
13pass pass 'return' doesn't accept expressions
14pass pass declare -F only prints shell functions
15FAIL FAIL sh-func vs. proc vs. Obj: type -a, pp proc, runproc, declare -p -F, etc.
detailsdetails
16pass pass procs are in same namespace as variables
17pass pass Nested proc is disallowed at parse time
18pass pass Procs defined inside compound statements (with redefine_proc)
19pass pass Block can be passed literally, or as expression in third arg group
20pass pass Pass through all 4 kinds of args
21pass pass Global and local ARGV, like "$@"
22pass pass Mutating global ARGV
23pass pass Mutating local ARGV
24pass pass typed proc allows all kinds of args
25pass pass can unset procs without -f
26pass pass procs shadow sh-funcs
27pass pass first word skips non-proc variables
28pass pass proc resolution changes with the local scope
29pass pass procs are defined in local scope
58 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

osh15 sh-func vs. proc vs. Obj: type -a, pp proc, runproc, declare -p -F, etc.

[osh stdout] Expected '', got 'myfunc is a shell function\n\nmyproc is a shell function\n\nproc_name\tdoc_comment\nmyfunc\t""\nmyproc\t""\n\ndeclare -- ARGV\ndeclare -- COMP_WORDBREAKS=$\' \\t\\n"\\\'><=;|&(:\'\ndeclare -- EUID=1000\ndeclare -- HISTFILE=/home/uke/.local/share/oils/osh_history\ndeclare -- HOSTNAME=124517cdffe1\ndeclare -- IFS=$\' \\t\\n\'\ndeclare -- INFINITY\ndeclare -x LC_ALL=C.UTF-8\ndeclare -- LIB_OSH=///osh\ndeclare -- LIB_YSH=///ysh\ndeclare -x LOCALE_ARCHIVE=\'\'\ndeclare -- NAN\ndeclare -x OILS_GC_ON_EXIT=\'\'\ndeclare -- OILS_VERSION=0.23.0\ndeclare -- OIL_VERSION=0.23.0\ndeclare -- OPTIND=1\ndeclare -- OSTYPE=linux\ndeclare -x PATH=\'/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\'\ndeclare -- PPID=42743\ndeclare -- PS4=\'${SHX_indent}${SHX_punct}${SHX_pid_str} \'\ndeclare -x PWD=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh\ndeclare -x PYTHONPATH=\'/home/uke/oil:/home/uke/oil/vendor\'\ndeclare -x REPO_ROOT=/home/uke/oil\ndeclare -x SH=/home/uke/oil/bin/osh\ndeclare -r SHELLOPTS=\'\'\ndeclare -x TMP=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh\ndeclare -- UID=1000\ndeclare -- __builtins__\ndeclare -- myproc\n\ndeclare -f myfunc\n\n'

stdout:
myfunc is a shell function

myproc is a shell function

proc_name	doc_comment
myfunc	""
myproc	""

declare -- ARGV
declare -- COMP_WORDBREAKS=$' \t\n"\'><=;|&(:'
declare -- EUID=1000
declare -- HISTFILE=/home/uke/.local/share/oils/osh_history
declare -- HOSTNAME=124517cdffe1
declare -- IFS=$' \t\n'
declare -- INFINITY
declare -x LC_ALL=C.UTF-8
declare -- LIB_OSH=///osh
declare -- LIB_YSH=///ysh
declare -x LOCALE_ARCHIVE=''
declare -- NAN
declare -x OILS_GC_ON_EXIT=''
declare -- OILS_VERSION=0.23.0
declare -- OIL_VERSION=0.23.0
declare -- OPTIND=1
declare -- OSTYPE=linux
declare -x PATH='/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
declare -- PPID=42743
declare -- PS4='${SHX_indent}${SHX_punct}${SHX_pid_str} '
declare -x PWD=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh
declare -x PYTHONPATH='/home/uke/oil:/home/uke/oil/vendor'
declare -x REPO_ROOT=/home/uke/oil
declare -x SH=/home/uke/oil/bin/osh
declare -r SHELLOPTS=''
declare -x TMP=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh
declare -- UID=1000
declare -- __builtins__
declare -- myproc

declare -f myfunc

stderr:
osh_ALT15 sh-func vs. proc vs. Obj: type -a, pp proc, runproc, declare -p -F, etc.

[osh_ALT stdout] Expected '', got 'myfunc is a shell function\n\nmyproc is a shell function\n\nproc_name\tdoc_comment\nmyfunc\t""\nmyproc\t""\n\ndeclare -- ARGV\ndeclare -- COMP_WORDBREAKS=$\' \\t\\n"\\\'><=;|&(:\'\ndeclare -- EUID=1000\ndeclare -- HISTFILE=/home/uke/.local/share/oils/osh_history\ndeclare -- HOSTNAME=124517cdffe1\ndeclare -- IFS=$\' \\t\\n\'\ndeclare -- INFINITY\ndeclare -x LC_ALL=C.UTF-8\ndeclare -- LIB_OSH=///osh\ndeclare -- LIB_YSH=///ysh\ndeclare -x LOCALE_ARCHIVE=\'\'\ndeclare -- NAN\ndeclare -x OILS_GC_ON_EXIT=\'\'\ndeclare -- OILS_VERSION=0.23.0\ndeclare -- OIL_VERSION=0.23.0\ndeclare -- OPTIND=1\ndeclare -- OSTYPE=linux\ndeclare -x PATH=\'/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\'\ndeclare -- PPID=42743\ndeclare -- PS4=\'${SHX_indent}${SHX_punct}${SHX_pid_str} \'\ndeclare -x PWD=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh_ALT\ndeclare -x REPO_ROOT=/home/uke/oil/test/..\ndeclare -x SH=/home/uke/oil/_tmp/oil-tar-test/oil-0.23.0/_bin/osh\ndeclare -r SHELLOPTS=\'\'\ndeclare -x TMP=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh_ALT\ndeclare -- UID=1000\ndeclare -- __builtins__\ndeclare -- myproc\n\ndeclare -f myfunc\n\n'

stdout:
myfunc is a shell function

myproc is a shell function

proc_name	doc_comment
myfunc	""
myproc	""

declare -- ARGV
declare -- COMP_WORDBREAKS=$' \t\n"\'><=;|&(:'
declare -- EUID=1000
declare -- HISTFILE=/home/uke/.local/share/oils/osh_history
declare -- HOSTNAME=124517cdffe1
declare -- IFS=$' \t\n'
declare -- INFINITY
declare -x LC_ALL=C.UTF-8
declare -- LIB_OSH=///osh
declare -- LIB_YSH=///ysh
declare -x LOCALE_ARCHIVE=''
declare -- NAN
declare -x OILS_GC_ON_EXIT=''
declare -- OILS_VERSION=0.23.0
declare -- OIL_VERSION=0.23.0
declare -- OPTIND=1
declare -- OSTYPE=linux
declare -x PATH='/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
declare -- PPID=42743
declare -- PS4='${SHX_indent}${SHX_punct}${SHX_pid_str} '
declare -x PWD=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh_ALT
declare -x REPO_ROOT=/home/uke/oil/test/..
declare -x SH=/home/uke/oil/_tmp/oil-tar-test/oil-0.23.0/_bin/osh
declare -r SHELLOPTS=''
declare -x TMP=/home/uke/oil/_tmp/spec-tmp/ysh-proc.test.sh.42737/15-osh_ALT
declare -- UID=1000
declare -- __builtins__
declare -- myproc

declare -f myfunc

stderr: