perl
view release on metacpan or search on metacpan
ext/XS-APItest/t/pad_scalar.t view on Meta::CPAN
use warnings;
use strict;
use Test::More tests => 76;
use XS::APItest qw(pad_scalar);
is pad_scalar(1, "foo"), "NOT_IN_PAD";
is pad_scalar(2, "foo"), "NOT_IN_PAD";
is pad_scalar(3, "foo"), "NOT_IN_PAD";
is pad_scalar(4, "foo"), "NOT_IN_PAD";
is pad_scalar(1, "bar"), "NOT_IN_PAD";
is pad_scalar(2, "bar"), "NOT_IN_PAD";
is pad_scalar(3, "bar"), "NOT_IN_PAD";
our $foo = "wibble";
my $bar = "wobble";
is pad_scalar(1, "foo"), "NOT_MY";
is pad_scalar(2, "foo"), "NOT_MY";
is pad_scalar(3, "foo"), "NOT_MY";
is pad_scalar(4, "foo"), "NOT_MY";
is pad_scalar(1, "bar"), "wobble";
is pad_scalar(2, "bar"), "wobble";
is pad_scalar(3, "bar"), "wobble";
sub aa($);
sub aa($) {
my $xyz;
ok \pad_scalar(1, "xyz") == \$xyz;
ok \pad_scalar(2, "xyz") == \$xyz;
ok \pad_scalar(3, "xyz") == \$xyz;
aa(0) if $_[0];
ok \pad_scalar(1, "xyz") == \$xyz;
ok \pad_scalar(2, "xyz") == \$xyz;
ok \pad_scalar(3, "xyz") == \$xyz;
is pad_scalar(1, "bar"), "wobble";
is pad_scalar(2, "bar"), "wobble";
is pad_scalar(3, "bar"), "wobble";
}
aa(1);
sub bb() {
my $counter = 0;
my $foo = \$counter;
return sub {
ok pad_scalar(1, "foo") == \pad_scalar(1, "counter");
ok pad_scalar(2, "foo") == \pad_scalar(1, "counter");
ok pad_scalar(3, "foo") == \pad_scalar(1, "counter");
ok pad_scalar(4, "foo") == \pad_scalar(1, "counter");
if(pad_scalar(1, "counter") % 3 == 0) {
return pad_scalar(1, "counter")++;
} elsif(pad_scalar(1, "counter") % 3 == 0) {
return pad_scalar(2, "counter")++;
} else {
return pad_scalar(3, "counter")++;
}
};
}
my $a = bb();
my $b = bb();
is $a->(), 0;
is $a->(), 1;
is $a->(), 2;
is $a->(), 3;
is $b->(), 0;
is $b->(), 1;
is $a->(), 4;
is $b->(), 2;
is pad_scalar(1, "foo"), "NOT_MY";
is pad_scalar(2, "foo"), "NOT_MY";
is pad_scalar(3, "foo"), "NOT_MY";
is pad_scalar(4, "foo"), "NOT_MY";
1;
( run in 2.638 seconds using v1.01-cache-2.11-cpan-b301d465b3d )