ysh-regex () { run-file ysh-regex "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" } ysh-regex: spec test case results

Results for ysh-regex.test.sh

statusoshosh_ALT
pass 3333
FAIL 11
total3434
caseoshosh_ALTdescription
0pass pass /^.$/
1pass pass /.+/
2pass pass Repeat {1,3} etc.
3pass pass d+ digit+ !d+ !digit+
4pass pass Alternation and sequence
5pass pass Char Class Ranges
6pass pass Char Class Set
7pass pass Range with escaped characters
8pass pass Group ()
9pass pass Capture is acceptable as a group
10pass pass literal ''
11pass pass Single quotes and splicing (do what "foo $x ${x}" used to)
12pass pass @splice
13pass pass splice with capital letters
14pass pass Matching escaped tab character
15pass pass Match unicode char
16FAIL FAIL Match non-ASCII byte denoted using $'\xff' (TODO: LANG=C)
detailsdetails
17pass pass Match non-ASCII byte denoted using \xff
18pass pass ERE can express Unicode escapes that are in the ASCII range
19pass pass ERE can't express higher Unicode escapes
20pass pass non-ASCII bytes must be singleton terms, e.g. '\x7f\xff' is disallowed
21pass pass Matching escaped tab character
22pass pass Repeated String Literal With Single Char
23pass pass Error when unparenthesized string of more than one character is repeated
24pass pass Instead of $'foo\\bar' use 'foo' \\ 'bar'
25pass pass Negation of Character Class ![a-z]
26pass pass Posix and Perl class in class literals
27pass pass [!d] can't be negated because it's a literal character
28pass pass [!digit] can't be negated in POSIX ERE (but yes in Perl)
29pass pass Operator chars in char classes (bash-like)
30pass pass Operator chars in char classes (eggex)
31pass pass Matching ] and \ and ' and " in character classes
32pass pass Matching literal hyphen in character classes
33pass pass Char class special: ^ - ] \
66 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

osh16 Match non-ASCII byte denoted using $'\xff' (TODO: LANG=C)

[osh stdout] Expected ' 5b ff 5d 0a\nyes\nno\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
  var pat = /[ $'\xff' ]/;
               ^~
[ stdin ]:2: fatal: Use unquoted char literal for byte 255, which is >= 128 (avoid confusing a set of bytes with a sequence)
osh_ALT16 Match non-ASCII byte denoted using $'\xff' (TODO: LANG=C)

[osh_ALT stdout] Expected ' 5b ff 5d 0a\nyes\nno\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
  var pat = /[ $'\xff' ]/;
               ^~
[ stdin ]:2: fatal: Use unquoted char literal for byte 255, which is >= 128 (avoid confusing a set of bytes with a sequence)