11use warnings;
22use strict;
33
4- use Test::More tests => 113 ;
4+ use Test::More tests => 139 ;
55
66use XS::APItest qw (
77 PAD_FINDMY_FOO
@@ -11,6 +11,7 @@ use XS::APItest qw (
1111 PAD_FIND_MY_SYMBOL_FOO
1212 PAD_FIND_MY_SYMBOL_PV
1313 PAD_FIND_MY_SYMBOL_PVN
14+ PAD_FIND_MY_SYMBOL_SV
1415 pad_scalar
1516) ;
1617
@@ -21,12 +22,14 @@ is pad_scalar (PAD_FINDMY_FOO, "foo"), "NOT_IN_PAD", q (undeclared '$foo
2122is pad_scalar (PAD_FIND_MY_SYMBOL_FOO, " foo" ), " NOT_IN_PAD" , q ( undeclared '$foo'; pad_find_my_symbol_pvs ()) ;
2223is pad_scalar (PAD_FIND_MY_SYMBOL_PV, " foo" ), " NOT_IN_PAD" , q ( undeclared '$foo'; pad_find_my_symbol_pv ()) ;
2324is pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " foo" ), " NOT_IN_PAD" , q ( undeclared '$foo'; pad_find_my_symbol_pvn ()) ;
25+ is pad_scalar (PAD_FIND_MY_SYMBOL_SV, " foo" ), " NOT_IN_PAD" , q ( undeclared '$foo'; pad_find_my_symbol_sv ()) ;
2426
2527is pad_scalar (PAD_FINDMY_SV, " bar" ), " NOT_IN_PAD" , q ( undeclared '$bar'; pad_findmy_sv ()) ;
2628is pad_scalar (PAD_FINDMY_PVN, " bar" ), " NOT_IN_PAD" , q ( undeclared '$bar'; pad_findmy_pvn ()) ;
2729is pad_scalar (PAD_FINDMY_PV, " bar" ), " NOT_IN_PAD" , q ( undeclared '$bar'; pad_findmy_pv ()) ;
2830is pad_scalar (PAD_FIND_MY_SYMBOL_PV, " bar" ), " NOT_IN_PAD" , q ( undeclared '$bar'; pad_find_my_symbol_pv ()) ;
2931is pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " bar" ), " NOT_IN_PAD" , q ( undeclared '$bar'; pad_find_my_symbol_pvn ()) ;
32+ is pad_scalar (PAD_FIND_MY_SYMBOL_SV, " bar" ), " NOT_IN_PAD" , q ( undeclared '$bar'; pad_find_my_symbol_sv ()) ;
3033
3134our $foo = " wibble" ;
3235my $bar = " wobble" ;
@@ -37,12 +40,14 @@ is pad_scalar (PAD_FINDMY_FOO, "foo"), "NOT_MY", q ('our $foo'; pad_find
3740is pad_scalar (PAD_FIND_MY_SYMBOL_FOO, " foo" ), " NOT_MY" , q ( 'our $foo'; pad_find_my_symbol_pvs ()) ;
3841is pad_scalar (PAD_FIND_MY_SYMBOL_PV, " foo" ), " NOT_MY" , q ( 'our $foo'; pad_find_my_symbol_pv ()) ;
3942is pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " foo" ), " NOT_MY" , q ( 'our $foo'; pad_find_my_symbol_pvn ()) ;
43+ is pad_scalar (PAD_FIND_MY_SYMBOL_SV, " foo" ), " NOT_MY" , q ( 'our $foo'; pad_find_my_symbol_sv ()) ;
4044
4145is pad_scalar (PAD_FINDMY_SV, " bar" ), " wobble" , q ( 'my $bar'; pad_findmy_sv ()) ;
4246is pad_scalar (PAD_FINDMY_PVN, " bar" ), " wobble" , q ( 'my $bar'; pad_findmy_pvn ()) ;
4347is pad_scalar (PAD_FINDMY_PV, " bar" ), " wobble" , q ( 'my $bar'; pad_findmy_pv ()) ;
4448is pad_scalar (PAD_FIND_MY_SYMBOL_PV, " bar" ), " wobble" , q ( 'my $bar'; pad_find_my_symbol_pv ()) ;
4549is pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " bar" ), " wobble" , q ( 'my $bar'; pad_find_my_symbol_pvn ()) ;
50+ is pad_scalar (PAD_FIND_MY_SYMBOL_SV, " bar" ), " wobble" , q ( 'my $bar'; pad_find_my_symbol_sv ()) ;
4651
4752sub aa ($);
4853sub aa ($) {
@@ -57,6 +62,7 @@ sub aa($) {
5762 ok \pad_scalar (PAD_FINDMY_PV, " xyz" ) == \$xyz , $prefix . q ( private variable; pad_findmy_pv ()) ;
5863 ok \pad_scalar (PAD_FIND_MY_SYMBOL_PV, " xyz" ) == \$xyz , $prefix . q ( private variable; pad_find_my_symbol_pv ()) ;
5964 ok \pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " xyz" ) == \$xyz , $prefix . q ( private variable; pad_find_my_symbol_pvn ()) ;
65+ ok \pad_scalar (PAD_FIND_MY_SYMBOL_SV, " xyz" ) == \$xyz , $prefix . q ( private variable; pad_find_my_symbol_sv ()) ;
6066
6167 if ($_ [0]) {
6268 aa(0); # recursive call
@@ -65,13 +71,15 @@ sub aa($) {
6571 ok \pad_scalar (PAD_FINDMY_PV, " xyz" ) == \$xyz , q ( private variable (after recursive call); pad_findmy_pv ()) ;
6672 ok \pad_scalar (PAD_FIND_MY_SYMBOL_PV, " xyz" ) == \$xyz , q ( private variable (after recursive call); pad_find_my_symbol_pv ()) ;
6773 ok \pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " xyz" ) == \$xyz , q ( private variable (after recursive call); pad_find_my_symbol_pvn ()) ;
74+ ok \pad_scalar (PAD_FIND_MY_SYMBOL_SV, " xyz" ) == \$xyz , q ( private variable (after recursive call); pad_find_my_symbol_sv ()) ;
6875 }
6976
7077 is pad_scalar (PAD_FINDMY_SV, " bar" ), " wobble" , $prefix . q ( Global 'my $bar'; pad_findmy_sv ()) ;
7178 is pad_scalar (PAD_FINDMY_PVN, " bar" ), " wobble" , $prefix . q ( Global 'my $bar'; pad_findmy_pvn ()) ;
7279 is pad_scalar (PAD_FINDMY_PV, " bar" ), " wobble" , $prefix . q ( Global 'my $bar'; pad_findmy_pv ()) ;
7380 is pad_scalar (PAD_FIND_MY_SYMBOL_PV, " bar" ), " wobble" , $prefix . q ( Global 'my $bar'; pad_find_my_symbol_pv ()) ;
7481 is pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " bar" ), " wobble" , $prefix . q ( Global 'my $bar'; pad_find_my_symbol_pvn ()) ;
82+ is pad_scalar (PAD_FIND_MY_SYMBOL_SV, " bar" ), " wobble" , $prefix . q ( Global 'my $bar'; pad_find_my_symbol_sv ()) ;
7583}
7684
7785aa(1);
@@ -82,14 +90,15 @@ sub bb() {
8290 my $counter = 0;
8391 my $foo = \$counter ;
8492 return sub {
85- ok pad_scalar (PAD_FINDMY_SV, " foo" ) == \pad_scalar (PAD_FINDMY_SV, " counter" );
86- ok pad_scalar (PAD_FINDMY_PVN, " foo" ) == \pad_scalar (PAD_FINDMY_SV, " counter" );
87- ok pad_scalar (PAD_FINDMY_PV, " foo" ) == \pad_scalar (PAD_FINDMY_SV, " counter" );
88- ok pad_scalar (PAD_FINDMY_FOO, " foo" ) == \pad_scalar (PAD_FINDMY_SV, " counter" );
89- ok pad_scalar (PAD_FIND_MY_SYMBOL_PV, " foo" ) == \pad_scalar (PAD_FINDMY_SV, " counter" );
90- ok pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " foo" ) == \pad_scalar (PAD_FINDMY_SV, " counter" );
93+ ok pad_scalar (PAD_FINDMY_SV, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
94+ ok pad_scalar (PAD_FINDMY_PVN, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
95+ ok pad_scalar (PAD_FINDMY_PV, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
96+ ok pad_scalar (PAD_FINDMY_FOO, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
97+ ok pad_scalar (PAD_FIND_MY_SYMBOL_PV, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
98+ ok pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
99+ ok pad_scalar (PAD_FIND_MY_SYMBOL_SV, " foo" ) == \pad_scalar(PAD_FINDMY_SV, " counter" );
91100
92- my $modulus = pad_scalar (PAD_FINDMY_SV, " counter" ) % 5 ;
101+ my $modulus = pad_scalar (PAD_FINDMY_SV, " counter" ) % 6 ;
93102
94103 return pad_scalar (PAD_FINDMY_SV, " counter" )++
95104 if $modulus == 0;
@@ -103,8 +112,11 @@ sub bb() {
103112 return pad_scalar (PAD_FIND_MY_SYMBOL_PV, " counter" )++
104113 if $modulus == 3;
105114
115+ return pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " counter" )++
116+ if $modulus == 4;
117+
106118 $all_increment_called = 1;
107- return pad_scalar (PAD_FIND_MY_SYMBOL_PVN , " counter" )++;
119+ return pad_scalar (PAD_FIND_MY_SYMBOL_SV , " counter" )++;
108120 };
109121}
110122my $a = bb();
@@ -117,6 +129,7 @@ is $b->(), 0;
117129is $b -> (), 1;
118130is $a -> (), 4;
119131is $b -> (), 2;
132+ is $a -> (), 5;
120133
121134ok $all_increment_called , q ( all pad scalar methods called for increment) ;
122135
@@ -127,5 +140,6 @@ is pad_scalar (PAD_FINDMY_FOO, "foo"), "NOT_MY", q ('my $foo' still unde
127140is pad_scalar (PAD_FIND_MY_SYMBOL_FOO, " foo" ), " NOT_MY" , q ( 'my $foo' still undeclared; pad_find_my_symbol_pvs ()) ;
128141is pad_scalar (PAD_FIND_MY_SYMBOL_PV, " foo" ), " NOT_MY" , q ( 'my $foo' still undeclared; pad_find_my_symbol_pv ()) ;
129142is pad_scalar (PAD_FIND_MY_SYMBOL_PVN, " foo" ), " NOT_MY" , q ( 'my $foo' still undeclared; pad_find_my_symbol_pvn ()) ;
143+ is pad_scalar (PAD_FIND_MY_SYMBOL_SV, " foo" ), " NOT_MY" , q ( 'my $foo' still undeclared; pad_find_my_symbol_sv ()) ;
130144
1311451;
0 commit comments