#!perl
BEGIN {
chdir
't'
if
-d
't'
;
@INC
=
"../lib"
;
require
'./test.pl'
;
}
$ENV
{PERL_TEST_MEMORY} >= 2
or skip_all(
"Need ~2Gb for this test"
);
$Config
{ptrsize} >= 8
or skip_all(
"Need 64-bit pointers for this test"
);
plan(6);
my
$x
=
" "
x(${\2}**31) .
"abcdefg"
;
ok
$x
=~ /./,
'match against long string succeeded'
;
is
"$-[0]-$+[0]"
,
'0-1'
,
'@-/@+ after match against long string'
;
pos
$x
= 2**31-1;
my
$result
;
for
(1..5) {
$x
=~ /./g;
$result
.=
"$&-"
;
}
is
$result
,
" -a-b-c-d-"
,
'scalar //g hopping past the 2**31 threshold'
;
pos
$x
= 2**31+3;
$x
=~ /./g;
is
"$'"
, 'efg
', q "$'
after
match against long string";
is
"$-[0],$+[0]"
,
'2147483651,2147483652'
,
'@- and @+ after matches past 2**31'
;
is
$x
=~ /(?:(?:.{32766}){32766}){2}(?:.{32766}){8}.{8}ef/, 1,
'anchored substr past 2**31'
;