added a test case for split
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -1009,7 +1009,7 @@ static int fnc_split (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi, int use_array)
|
||||
/*t2 = hawk_rtx_makestrvalwithoocs(rtx, &tok);*/
|
||||
/*t2 = hawk_rtx_makenstrvalwithoocs(rtx, &tok); */
|
||||
t2 = is_byte_str? hawk_rtx_makenumormbsvalwithbchars(rtx, (hawk_bch_t*)tok.ptr, tok.len):
|
||||
hawk_rtx_makenumorstrvalwithoochars(rtx, tok.ptr, tok.len);
|
||||
hawk_rtx_makenumorstrvalwithoochars(rtx, tok.ptr, tok.len);
|
||||
if (HAWK_UNLIKELY(!t2)) goto oops;
|
||||
|
||||
if (use_array)
|
||||
|
38
t/h-002.hawk
38
t/h-002.hawk
@ -486,6 +486,14 @@ function main()
|
||||
tap_ensure (a[3] === @b"So]me", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[4] === @b"Da:ta", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
## the splitter begins with a question mark and contains 4 characters
|
||||
## (separator, escaper, left-quote, right-qoute) after it.
|
||||
tap_ensure (split(@b"sea of people, brandy, coke, dark\\,age", a, "?,\\\"\""), 4, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === @b"sea of people", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === @b"brandy", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[3] === @b"coke", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[4] === @b"dark,age", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
tap_ensure (split("Here===Is=Some=====Data", a, ""), 23, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (hawk::typename(a), "map", @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (str::splita("Here===Is=Some=====Data", a, ""), 23, @SCRIPTNAME, @SCRIPTLINE);
|
||||
@ -512,25 +520,25 @@ function main()
|
||||
tap_ensure (a[4], "b\t\tc", @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[5], "d", @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
tap_ensure (str::split('a', a, /a/), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (str::split('a', a, /a/), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
tap_ensure (str::split('a', a, 'a'), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (str::split('a', a, 'a'), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
tap_ensure (str::split('a', a, @b'a'), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (str::split('a', a, @b'a'), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === "", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
tap_ensure (str::split(@b'a', a, /a/), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (str::split(@b'a', a, /a/), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
|
||||
tap_ensure (str::split(@b'a', a, @b'a'), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (str::split(@b'a', a, @b'a'), 2, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[1] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
tap_ensure (a[2] === @b"", 1, @SCRIPTNAME, @SCRIPTLINE);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user