summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-07-11 19:11:07 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-07-11 19:11:07 +0000
commited7ab888f26e9b2a3bcf98806b630e993179f8b4 (patch)
treeb48a46808db67c5d91844064dea0ae8a4c692a27 /t
parent51371543ca1a75ed152020ad0846b5b8cf11c32f (diff)
downloadperl-ed7ab888f26e9b2a3bcf98806b630e993179f8b4.tar.gz
change#3612 was buggy and failed to build Tk; applied Ilya's
remedy and related tests via private mail p4raw-link: @3612 on //depot/perl: b162f9ead0a98db35cdcfc8c889e344c040c8d8e p4raw-id: //depot/perl@3664
Diffstat (limited to 't')
-rwxr-xr-xt/op/lex_assign.t63
1 files changed, 62 insertions, 1 deletions
diff --git a/t/op/lex_assign.t b/t/op/lex_assign.t
index b2acd65d75..01e0ba0019 100755
--- a/t/op/lex_assign.t
+++ b/t/op/lex_assign.t
@@ -22,11 +22,72 @@ $nn = $n = 2;
sub subb {"in s"}
@INPUT = <DATA>;
-print "1..", (scalar @INPUT), "\n";
+print "1..", (8 + @INPUT), "\n";
$ord = 0;
sub wrn {"@_"}
+# Check correct optimization of ucfirst etc
+$ord++;
+my $a = "AB";
+my $b = "\u\L$a";
+print "not " unless $b eq 'Ab';
+print "ok $ord\n";
+
+# Check correct destruction of objects:
+my $dc = 0;
+sub A::DESTROY {$dc += 1}
+$a=8;
+my $b;
+{ my $c = 6; $b = bless \$c, "A"}
+
+$ord++;
+print "not " unless $dc == 0;
+print "ok $ord\n";
+
+$b = $a+5;
+
+$ord++;
+print "not " unless $dc == 1;
+print "ok $ord\n";
+
+{ # Check calling STORE
+ my $sc = 0;
+ sub B::TIESCALAR {bless [11], 'B'}
+ sub B::FETCH { -(shift->[0]) }
+ sub B::STORE { $sc++; my $o = shift; $o->[0] = 17 + shift }
+
+ my $m;
+ tie $m, 'B';
+ $m = 100;
+
+ $ord++;
+ print "not " unless $sc == 1;
+ print "ok $ord\n";
+
+ my $t = 11;
+ $m = $t + 89;
+
+ $ord++;
+ print "not " unless $sc == 2;
+ print "ok $ord\n";
+
+ $ord++;
+ print "# $m\nnot " unless $m == -117;
+ print "ok $ord\n";
+
+ $m += $t;
+
+ $ord++;
+ print "not " unless $sc == 3;
+ print "ok $ord\n";
+
+ $ord++;
+ print "# $m\nnot " unless $m == 89;
+ print "ok $ord\n";
+
+}
+
for (@INPUT) {
$ord++;
($op, undef, $comment) = /^([^\#]+)(\#\s+(.*))?/;