USING: accessors arrays assocs continuations http.client kernel
-literals math math.parser math.ranges pcre pcre.ffi pcre.private
+literals math math.parser ranges pcre pcre.ffi pcre.private
random sequences system tools.test ;
QUALIFIED: regexp
QUALIFIED: splitting
{ "year" "month" "day" } [ pcre_get_stringnumber ] with map
] unit-test
-{ t } [ "foo" <compiled-pcre> PCRE_UTF8 has-option? ] unit-test
+{ t } [
+ "foo" <compiled-pcre> PCRE_UTF8 has-option?
+] unit-test
+
+! This option is not present on old PCRE versions.
+{ t } [
+ "foo" <compiled-pcre> version 8.10 >
+ [ PCRE_UCP has-option? ] [ PCRE_UCP has-option? not ] if
+] unit-test
os unix? [ [ 10 ] [ PCRE_CONFIG_NEWLINE pcre-config ] unit-test ] when
] unit-test
: long-string ( -- x )
- 10000 [ CHAR: a CHAR: z [a,b] random ] "" replicate-as ;
+ 10000 [ CHAR: a CHAR: z [a..b] random ] "" replicate-as ;
! Performance
{ 0 } [ long-string ".{0,15}foobar.{0,10}" findall length ] unit-test
-! Empty matches, corner case behaviour is copied from pcredemo.c
+! Empty matches, corner case behavior is copied from pcredemo.c
{ { { { f "foo" } } { { f "" } } } }
[ "foo" ".*" findall ] unit-test
! This used to work in 8.36, but might have changed in later versions.
! See: https://bugs.exim.org/show_bug.cgi?id=1875
-pcre_version " " splitting:split1 drop string>number 8.36 <= [
+version 8.36 <= [
{ t t } [
"(?s)." <compiled-pcre> PCRE_DOTALL has-option?
"(?i)x" <compiled-pcre> PCRE_CASELESS has-option?
! Bigger tests
{ t } [
- "http://factorcode.org/" http-get nip
+ "https://factorcode.org/" http-get nip
"href=\"(?P<link>[^\"]+)\"" findall [ "link" of ] map sequence?
] unit-test