use warnings;
use strict;
use Test::More tests => 14;
BEGIN { $^H |= 0x20000; }
my $t;
$t = "";
eval q{
use XS::APItest qw(loopblock);
do {
$t .= "a";
loopblock {
$t .= "b";
last unless length($t) < 5;
$t .= "c";
}
};
$t .= "d";
};
is $@, "";
is $t, "abcbcbd";
$t = "";
eval q{
use XS::APItest qw(loopblock);
$t .= "a";
loopblock {
$t .= "b";
last unless length($t) < 5;
$t .= "c";
}
};
is $@, "";
is $t, "abcbcb";
$t = "";
eval q[
use XS::APItest qw(loopblock);
do {
$t .= "a";
loopblock {
$t .= "b";
last unless length($t) < 5;
$t .= "c";
}
];
isnt $@, "";
is $t, "";
$t = "";
eval q[
use XS::APItest qw(loopblock);
$t .= "a";
loopblock {
$t .= "b";
last unless length($t) < 5;
$t .= "c";
}
};
];
isnt $@, "";
is $t, "";
$t = "";
eval q{
use XS::APItest qw(loopblock);
my $x = "a";
$t .= $x;
do {
no warnings "misc";
$t .= $x;
my $x = "b";
$t .= $x;
loopblock {
$t .= $x;
my $x = "c";
$t .= $x;
last unless length($t) < 7;
$t .= $x;
my $x = "d";
$t .= $x;
}
};
$t .= $x;
};
is $@, "";
is $t, "aabbccdbca";
$t = "";
eval q{
use XS::APItest qw(loopblock);
do {
{ $t .= "a"; }
loopblock {
{ $t .= "b"; }
last unless length($t) < 5;
{ $t .= "c"; }
}
};
$t .= "d";
};
is $@, "";
is $t, "abcbcbd";
$t = "";
eval q{
use XS::APItest qw(loopblock);
{ $t .= "a"; }
loopblock {
{ $t .= "b"; }
last unless length($t) < 5;
{ $t .= "c"; }
}
};
is $@, "";
is $t, "abcbcb";
1;