From: Yitzchak Scott-Thoennes Date: Thu, 19 Sep 2002 22:34:01 +0000 (-0700) Subject: add TODO tests for slow our() declaration X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=cb1ce60838923277ddef8cb8d26370507470dbd7;p=p5sagit%2Fp5-mst-13.2.git add TODO tests for slow our() declaration Subject: Re: [perl #17376] Bug Report - our(%) Message-ID: p4raw-id: //depot/perl@17921 --- diff --git a/MANIFEST b/MANIFEST index 6c4c5bd..7b7201c 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2346,6 +2346,7 @@ t/comp/cpp.t See if C preprocessor works t/comp/decl.t See if declarations work t/comp/hints.t See if %^H works t/comp/multiline.t See if multiline strings work +t/comp/our.t Tests for our declaration t/comp/package.t See if packages work t/comp/proto.t See if function prototypes work t/comp/redef.t See if we get correct warnings on redefined subs diff --git a/t/comp/our.t b/t/comp/our.t new file mode 100644 index 0000000..c381c41 --- /dev/null +++ b/t/comp/our.t @@ -0,0 +1,49 @@ +#!./perl + +BEGIN { + chdir 't'; + @INC = '../lib'; + require './test.pl'; +} + +print "1..6\n"; + +{ + package TieAll; + # tie, track, and report what calls are made + my @calls; + sub AUTOLOAD { + for ($AUTOLOAD =~ /TieAll::(.*)/) { + if (/TIE/) { return bless {} } + elsif (/calls/) { return join ',', splice @calls } + else { + push @calls, $_; + # FETCHSIZE doesn't like undef + # if FIRSTKEY, see if NEXTKEY is also called + return 1 if /FETCHSIZE|FIRSTKEY/; + return; + } + } + } +} + +tie $x, 'TieAll'; +tie @x, 'TieAll'; +tie %x, 'TieAll'; + +{our $x;} +is(TieAll->calls, '', 'our $x has no runtime effect'); +{our ($x);} +is(TieAll->calls, '', 'our ($x) has no runtime effect'); +{our %x;} +is(TieAll->calls, '', 'our %x has no runtime effect'); + +{ + local $TODO = 'perl #17376'; + {our (%x);} + is(TieAll->calls, '', 'our (%x) has no runtime effect'); + {our @x;} + is(TieAll->calls, '', 'our @x has no runtime effect'); + {our (@x);} + is(TieAll->calls, '', 'our (@x) has no runtime effect'); +}