From 48441d71a001d55993adc5d7cf3c122d8b13b721 Mon Sep 17 00:00:00 2001 From: "Jerry D. Hedden" Date: Wed, 9 May 2007 17:05:52 -0400 Subject: [PATCH] Fix bignum-0.21 From: "Jerry D. Hedden" Message-ID: <1ff86f510705091805n37c4137u16a35ca27810979f@mail.gmail.com> p4raw-id: //depot/perl@31191 --- lib/bignum.pm | 4 ++-- lib/bignum/t/option_l.t | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/lib/bignum.pm b/lib/bignum.pm index 26140ec..d9d73bb 100644 --- a/lib/bignum.pm +++ b/lib/bignum.pm @@ -1,7 +1,7 @@ package bignum; use 5.006002; -$VERSION = '0.21_01'; +$VERSION = '0.21_02'; use Exporter; @EXPORT_OK = qw( ); @EXPORT = qw( inf NaN ); @@ -156,7 +156,7 @@ sub import require Math::BigInt if $_lite == 0; # not already loaded? $class = 'Math::BigInt'; # regardless of MBIL or not } - push @import, 'try' => $lib if $lib ne ''; + push @import, $lib_kind => $lib if $lib ne ''; # Math::BigInt::Trace or plain Math::BigInt $class->import(@import, upgrade => $upgrade); diff --git a/lib/bignum/t/option_l.t b/lib/bignum/t/option_l.t index f534183..cfa8033 100755 --- a/lib/bignum/t/option_l.t +++ b/lib/bignum/t/option_l.t @@ -1,5 +1,7 @@ #!/usr/bin/perl -w +# test the "l", "lib", "try" and "only" options: + use Test::More; use strict; @@ -8,19 +10,40 @@ BEGIN $| = 1; chdir 't' if -d 't'; unshift @INC, '../lib'; - plan tests => 12; + plan tests => 19; } use bignum; +my @W; +{ +# catch warnings: +require Carp; +no warnings 'redefine'; +*Carp::carp = sub { push @W, $_[0]; }; +} + my $rc = eval ('bignum->import( "l" => "foo" );'); is ($@,''); # shouldn't die +is (scalar @W, 1, 'one warning'); +like ($W[0], qr/fallback to Math::/, 'got fallback'); + $rc = eval ('bignum->import( "lib" => "foo" );'); is ($@,''); # ditto +is (scalar @W, 2, 'two warnings'); +like ($W[1], qr/fallback to Math::/, 'got fallback'); + +$rc = eval ('bignum->import( "try" => "foo" );'); +is ($@,''); # shouldn't die +$rc = eval ('bignum->import( "try" => "foo" );'); +is ($@,''); # ditto $rc = eval ('bignum->import( "foo" => "bar" );'); like ($@, qr/^Unknown option foo/i, 'died'); # should die +$rc = eval ('bignum->import( "only" => "bar" );'); +like ($@, qr/fallback disallowed/i, 'died'); # should die + # test that options are only lowercase (don't see a reason why allow UPPER) foreach (qw/L LIB Lib T Trace TRACE V Version VERSION/) -- 2.7.4