develooper Front page | perl.perl5.porters | Postings from June 2009

Re: [perl.git] branch blead, updated. GitLive-blead-1306-ge8514a9

From:
Bram
Date:
June 27, 2009 02:15
Subject:
Re: [perl.git] branch blead, updated. GitLive-blead-1306-ge8514a9
Message ID:
20090627111526.2wevl3i4owco0og0@horde.wizbit.be
Citeren Rafael Garcia-Suarez <rgarciasuarez@gmail.com>:

> In perl.git, the branch blead has been updated
>
> <http://perl5.git.perl.org/perl.git/commitdiff/e8514a9ea0b3241fdae7b1f70306632bc85a7004?hp=242a51a42272a23c60feb9c1b7cd686bfc28e04b>
>
> - Log -----------------------------------------------------------------
> commit e8514a9ea0b3241fdae7b1f70306632bc85a7004
> Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
> Date:   Tue Jun 9 10:25:51 2009 +0200
>
>     Fix regression test for RT 63110 when running with PERL_UNICODE set
>
>     This is because block_start already does a copy of the hints in   
> this case.
> -----------------------------------------------------------------------
>
> Summary of changes:
>  t/op/eval.t |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/t/op/eval.t b/t/op/eval.t
> index 2fef2aa..071b2fa 100644
> --- a/t/op/eval.t
> +++ b/t/op/eval.t
> @@ -549,10 +549,11 @@ $test++;
>  # don't leak memory
>  {
>      use feature qw(:5.10);
> +    my $count_expected = ($^H & 0x20000) ? 2 : 1;
>      my $t;
>      my $s = "a";
>      $s =~ s/a/$t = \%^H;  qq( qq() );/ee;
> -    print "not " if Internals::SvREFCNT(%$t) != 1;
> +    print "not " if Internals::SvREFCNT(%$t) != $count_expected;
>      print "ok $test - RT 63110\n";
>      $test++;
>  }
>
> --

I wondered why '$^H & 0x20000' was used in the above change.

The reason: when the test is run with LC_ALL='en_US.utf8'  
PERL_UNICODE="IOESioDALa" ./perl harness -v op/eval.t then the hints  
are not copied. (0x20000 comes from: #define HINT_LOCALIZE_HH  
0x00020000 /* %^H needs to be copied */)

Since this was not very obvious (to me at least) I looked for another  
way to test this: when HINT_LOCALIZE_HH is set then $t is always the  
same as \%^H.

Attached is a patch which updates the test from '$^H & 0x20000' to '$t  
== \%^H'.


Best regards,

Bram




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About