tests/string.in: add tests for string builtin
This commit is contained in:
parent
74cd977566
commit
0b3406bdc0
0
tests/string.err
Normal file
0
tests/string.err
Normal file
63
tests/string.in
Normal file
63
tests/string.in
Normal file
@ -0,0 +1,63 @@
|
||||
# tests for string builtin
|
||||
# mostly taken from examples
|
||||
string length 'hello, world'
|
||||
|
||||
string length -q ""; and echo not zero length
|
||||
|
||||
string sub --length 2 abcde
|
||||
|
||||
string sub -s 2 -l 2 abcde
|
||||
|
||||
string sub --start=-2 abcde
|
||||
|
||||
string split . example.com
|
||||
|
||||
string split -r -m1 / /usr/local/bin/fish
|
||||
|
||||
string split '' abc
|
||||
|
||||
seq 3 | string join ...
|
||||
|
||||
echo ' abc '
|
||||
string trim ' abc '
|
||||
|
||||
string trim --right --chars=yz xyzzy zany
|
||||
|
||||
echo \x07 | string escape
|
||||
|
||||
string match '?' a
|
||||
|
||||
string match 'a*b' axxb
|
||||
|
||||
string match -i 'a??B' Axxb
|
||||
|
||||
echo 'ok?' | string match '*\?'
|
||||
|
||||
string match -r 'cat|dog|fish' 'nice dog'
|
||||
|
||||
string match -r '(\d\d?):(\d\d):(\d\d)' 2:34:56
|
||||
|
||||
string match -r '^(\w{2,4})\g1$' papa mud murmur
|
||||
|
||||
string match -r -a -n at ratatat
|
||||
|
||||
string match -r -i '0x[0-9a-f]{1,8}' 'int magic = 0xBadC0de;'
|
||||
|
||||
string replace is was 'blue is my favorite'
|
||||
|
||||
string replace 3rd last 1st 2nd 3rd
|
||||
|
||||
string replace -a ' ' _ 'spaces to underscores'
|
||||
|
||||
string replace -r -a '[^\d.]+' ' ' '0 one two 3.14 four 5x'
|
||||
|
||||
string replace -r '(\w+)\s+(\w+)' '$2 $1 $$' 'left right'
|
||||
|
||||
string replace -r '\s*newline\s*' '\n' 'put a newline here'
|
||||
|
||||
# test some failure cases
|
||||
string match -r '[' 'a[sd' 2>/dev/null; or echo "invalid expression error"
|
||||
|
||||
string invalidarg 2>/dev/null; or echo "invalid argument error"
|
||||
|
||||
string length 2>/dev/null; or echo "missing argument returns 0"
|
46
tests/string.out
Normal file
46
tests/string.out
Normal file
@ -0,0 +1,46 @@
|
||||
12
|
||||
ab
|
||||
bc
|
||||
de
|
||||
example
|
||||
com
|
||||
/usr/local/bin
|
||||
fish
|
||||
a
|
||||
b
|
||||
c
|
||||
1...2...3
|
||||
abc
|
||||
abc
|
||||
x
|
||||
zan
|
||||
\cg
|
||||
a
|
||||
axxb
|
||||
Axxb
|
||||
ok?
|
||||
dog
|
||||
2:34:56
|
||||
2
|
||||
34
|
||||
56
|
||||
papa
|
||||
pa
|
||||
murmur
|
||||
mur
|
||||
2 2
|
||||
4 2
|
||||
6 2
|
||||
0xBadC0de
|
||||
blue was my favorite
|
||||
1st
|
||||
2nd
|
||||
last
|
||||
spaces_to_underscores
|
||||
0 3.14 5
|
||||
right left $
|
||||
put a
|
||||
here
|
||||
invalid expression error
|
||||
invalid argument error
|
||||
missing argument returns 0
|
1
tests/string.status
Normal file
1
tests/string.status
Normal file
@ -0,0 +1 @@
|
||||
0
|
Loading…
Reference in New Issue
Block a user