spec test index / oilshell.org
status | ysh | ysh_ALT | |
pass | 7 | 0 | |
FAIL | 2 | 9 | |
total | 9 | 9 | |
case | ysh | ysh_ALT | description |
0 | pass | FAIL | args.ysh example usage |
details | |||
1 | pass | FAIL | Bool flag, positional args, more positional |
details | |||
2 | pass | FAIL | Test multiple ARGVs against a parser |
details | |||
3 | FAIL | FAIL | Basic help message |
details | details | ||
4 | FAIL | FAIL | Compare parseArgs() vs Python argparse |
details | details | ||
5 | pass | FAIL | Define spec and print it |
details | |||
6 | pass | FAIL | Default values |
details | |||
7 | pass | FAIL | Duplicate argument/flag names |
details | |||
8 | pass | FAIL | Error cases |
details |
7 passed, 0 OK, 0 not implemented, 0 BUG, 11 failed, 0 timeouts, 0 cases skipped 2 failed under osh
ysh_ALT | 0 args.ysh example usage [ysh_ALT stdout] Expected 'Verbose false\n(Dict) {"src":"mysrc","max-procs":12,"dest":"mydest","files":["a","b","c"],"verbose":false,"invert":true}\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 43979: command.Simple failed with status 1 |
ysh_ALT | 1 Bool flag, positional args, more positional [ysh_ALT stdout] Expected '(Dict) {"verbose":true,"src":"src/path","dst":"dst/path","more":["x","y","z"]}\nsrc/path -> dst/path\nx\ny\nz\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 43983: command.Simple failed with status 1 |
ysh_ALT | 2 Test multiple ARGVs against a parser [ysh_ALT stdout] Expected '---------- -v --count 120 example.sh ----------\n$ bin/ysh example.sh -v --count 120 example.sh\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n---------- -v --count 120 example.sh -v ----------\n$ bin/ysh example.sh -v --count 120 example.sh -v\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n---------- -v --count 120 example.sh -v --count 150 ----------\n$ bin/ysh example.sh -v --count 120 example.sh -v --count 150\n(Dict) {"verbose":true,"count":150,"file":"example.sh"}\n\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 43987: command.Simple failed with status 1 |
ysh | 3 Basic help message [ysh stdout] Expected 'usage: program-name [-h] [-v] src dst\n\nReference Implementation\n\npositional arguments:\n src\n dst\n\noptions:\n -h, --help show this help message and exit\n -v, --verbose Verbose\n' Got '' [ysh status] Expected 0, got 127 stdout: stderr: description ''' ^~~~~~~~~~~ [ stdin ]:4: 'description' not found (OILS-ERR-100) [ stdin ]:4: errexit PID 43988: command.Simple failed with status 127 |
ysh_ALT | 3 Basic help message [ysh_ALT stdout] Expected 'usage: program-name [-h] [-v] src dst\n\nReference Implementation\n\npositional arguments:\n src\n dst\n\noptions:\n -h, --help show this help message and exit\n -v, --verbose Verbose\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 43991: command.Simple failed with status 1 |
ysh | 4 Compare parseArgs() vs Python argparse [ysh stdout] Expected '---------- -v --count 120 example.sh ----------\n$ bin/ysh example.sh -v --count 120 example.sh\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh\nNamespace(filename=\'example.sh\', count=\'120\', verbose=True)\n\n---------- -v --count 120 example.sh -v ----------\n$ bin/ysh example.sh -v --count 120 example.sh -v\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh -v\nNamespace(filename=\'example.sh\', count=\'120\', verbose=True)\n\n---------- -v --count 120 example.sh -v --count 150 ----------\n$ bin/ysh example.sh -v --count 120 example.sh -v --count 150\n(Dict) {"verbose":true,"count":150,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh -v --count 150\nNamespace(filename=\'example.sh\', count=\'150\', verbose=True)\n\n' Got '---------- -v --count 120 example.sh ----------\n$ bin/ysh example.sh -v --count 120 example.sh\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh\n' [ysh status] Expected 0, got 127 stdout: ---------- -v --count 120 example.sh ---------- $ bin/ysh example.sh -v --count 120 example.sh (Dict) {"verbose":true,"count":120,"file":"example.sh"} $ python3 example.py -v --count 120 example.shstderr: python3 -c $argparse_py @args ^~~~~~~ [ stdin ]:42: 'python3' not found (OILS-ERR-100) [ stdin ]:42: errexit PID 43992: command.Simple failed with status 127 |
ysh_ALT | 4 Compare parseArgs() vs Python argparse [ysh_ALT stdout] Expected '---------- -v --count 120 example.sh ----------\n$ bin/ysh example.sh -v --count 120 example.sh\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh\nNamespace(filename=\'example.sh\', count=\'120\', verbose=True)\n\n---------- -v --count 120 example.sh -v ----------\n$ bin/ysh example.sh -v --count 120 example.sh -v\n(Dict) {"verbose":true,"count":120,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh -v\nNamespace(filename=\'example.sh\', count=\'120\', verbose=True)\n\n---------- -v --count 120 example.sh -v --count 150 ----------\n$ bin/ysh example.sh -v --count 120 example.sh -v --count 150\n(Dict) {"verbose":true,"count":150,"file":"example.sh"}\n\n$ python3 example.py -v --count 120 example.sh -v --count 150\nNamespace(filename=\'example.sh\', count=\'150\', verbose=True)\n\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 43995: command.Simple failed with status 1 |
ysh_ALT | 5 Define spec and print it [ysh_ALT stdout] Expected '{\n "flags": [\n {\n "short": "-v",\n "long": "--verbose",\n "name": "verbose",\n "type": "bool",\n "default": false,\n "help": null\n }\n ],\n "args": [\n {\n "name": "src",\n "help": null\n },\n {\n "name": "dst",\n "help": null\n }\n ],\n "rest": "more"\n}\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 43999: command.Simple failed with status 1 |
ysh_ALT | 6 Default values [ysh_ALT stdout] Expected '(Dict) {"sanitize":false,"verbose":false,"max-procs":null}\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 44003: command.Simple failed with status 1 |
ysh_ALT | 7 Duplicate argument/flag names [ysh_ALT stdout] Expected 'status=3\nstatus=3\nstatus=3\n', got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 44007: command.Simple failed with status 1 |
ysh_ALT | 8 Error cases [ysh_ALT stdout] Expected 'status=2\nstatus=2\nstatus=2\nstatus=2\nstatus=2\nstatus=2\n' Got '' [ysh_ALT status] Expected 0, got 1 stdout: stderr: source $LIB_YSH/args.ysh ^~~~~~~~ [ stdin ]:1: 'source' failed: No builtin file 'stdlib/ysh/args.ysh' source $LIB_YSH/args.ysh ^~~~~~ [ stdin ]:1: errexit PID 44011: command.Simple failed with status 1 |