tests/string.in: add tests for string builtin

This commit is contained in:
David Adam 2015-10-09 11:27:18 +08:00
parent 74cd977566
commit 0b3406bdc0
4 changed files with 110 additions and 0 deletions

0
tests/string.err Normal file
View File

63
tests/string.in Normal file
View 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
View 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
View File

@ -0,0 +1 @@
0