From: Nicholas Clark Date: Fri, 23 Jan 2004 18:28:43 +0000 (+0000) Subject: test that use encoding; doesn't cause references to be stringified X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1858f5c364ee8a037ee41664a9d5964814b7e038;p=p5sagit%2Fp5-mst-13.2.git test that use encoding; doesn't cause references to be stringified p4raw-id: //depot/perl@22200 --- diff --git a/t/uni/chomp.t b/t/uni/chomp.t index 35eafdf..00d6e46 100644 --- a/t/uni/chomp.t +++ b/t/uni/chomp.t @@ -26,8 +26,7 @@ BEGIN { } use strict; -# 2 * (@char ** 3) * (keys %mbchars) -use Test::More tests => 2 * (4 * 4 * 4) * (3); +use Test::More; # %mbchars = (encoding => { bytes => utf8, ... }, ...); # * pack('C*') is expected to return bytes even if ${^ENCODING} is true. @@ -46,6 +45,10 @@ our %mbchars = ( }, ); +# 4 == @char; paired tests inside 3 nested loops, +# plus extra pair of tests in a loop, plus extra pair of tests. +plan tests => 2 * (4 ** 3 + 4 + 1) * (keys %mbchars); + for my $enc (sort keys %mbchars) { local ${^ENCODING} = find_encoding($enc); my @char = (sort(keys %{ $mbchars{$enc} }), @@ -70,5 +73,16 @@ for my $enc (sort keys %mbchars) { is ($string, $expect); # "$enc \$/=$rs $start $end" } } + # chomp should not stringify references unless it decides to modify + # them + $_ = []; + my $got = chomp(); + is ($got, 0); + is (ref($_), "ARRAY", "chomp ref (no modify)"); } + + $/ = ")"; # the last char of something like "ARRAY(0x80ff6e4)" + my $got = chomp(); + is ($got, 1); + ok (!ref($_), "chomp ref (modify)"); }