diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2009-01-02 12:05:59 +0100 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2009-01-02 12:05:59 +0100 |
commit | abb619adf81df64d67e76aa14cbb224b1ad99bd6 (patch) | |
tree | 4ebe032f0c4134b03c0f8138c5ac8517c37a2469 /lib/overloading.t | |
parent | 83706693c63eb4fe0fd171a88263c83548c89029 (diff) | |
download | perl-abb619adf81df64d67e76aa14cbb224b1ad99bd6.tar.gz |
Add a new test for overloading.pm
This one overloads "cos", which is currently at the end of the
overload table, so we properly test the bitstring stored in %^H
Diffstat (limited to 'lib/overloading.t')
-rw-r--r-- | lib/overloading.t | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/overloading.t b/lib/overloading.t index 8121cc8b41..cedfc516cc 100644 --- a/lib/overloading.t +++ b/lib/overloading.t @@ -7,7 +7,7 @@ BEGIN { BEGIN { require "./test.pl"; - plan(tests => 22); + plan(tests => 35); } use Scalar::Util qw(refaddr); @@ -19,6 +19,7 @@ use Scalar::Util qw(refaddr); fallback => 1, '""' => sub { "foo" }, '0+' => sub { 42 }, + cos => sub { "far side of overload table" }, ); sub new { bless {}, shift }; @@ -28,16 +29,19 @@ my $x = Stringifies->new; is( "$x", "foo", "stringifies" ); is( 0 + $x, 42, "numifies" ); +is( cos($x), "far side of overload table", "cosinusfies" ); { no overloading; is( "$x", overload::StrVal($x), "no stringification" ); is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), cos(refaddr($x)), "no cosinusfication" ); { no overloading '""'; is( "$x", overload::StrVal($x), "no stringification" ); is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), cos(refaddr($x)), "no cosinusfication" ); } } @@ -46,37 +50,48 @@ is( 0 + $x, 42, "numifies" ); is( "$x", overload::StrVal($x), "no stringification" ); is( 0 + $x, 42, "numifies" ); + is( cos($x), "far side of overload table", "cosinusfies" ); { no overloading; is( "$x", overload::StrVal($x), "no stringification" ); is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), cos(refaddr($x)), "no cosinusfication" ); } use overloading '""'; is( "$x", "foo", "stringifies" ); is( 0 + $x, 42, "numifies" ); + is( cos($x), "far side of overload table", "cosinusfies" ); no overloading '0+'; is( "$x", "foo", "stringifies" ); is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), "far side of overload table", "cosinusfies" ); { no overloading '""'; is( "$x", overload::StrVal($x), "no stringification" ); is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), "far side of overload table", "cosinusfies" ); { use overloading; is( "$x", "foo", "stringifies" ); is( 0 + $x, 42, "numifies" ); + is( cos($x), "far side of overload table", "cosinusfies" ); } } is( "$x", "foo", "stringifies" ); is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), "far side of overload table", "cosinusfies" ); + no overloading "cos"; + is( "$x", "foo", "stringifies" ); + is( 0 + $x, refaddr($x), "no numification" ); + is( cos($x), cos(refaddr($x)), "no cosinusfication" ); BEGIN { ok(exists($^H{overloading}), "overloading hint present") } |