summaryrefslogtreecommitdiff
path: root/ext/bignum/t/option_l.t
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bignum/t/option_l.t')
-rw-r--r--ext/bignum/t/option_l.t54
1 files changed, 54 insertions, 0 deletions
diff --git a/ext/bignum/t/option_l.t b/ext/bignum/t/option_l.t
new file mode 100644
index 0000000000..cfa8033f22
--- /dev/null
+++ b/ext/bignum/t/option_l.t
@@ -0,0 +1,54 @@
+#!/usr/bin/perl -w
+
+# test the "l", "lib", "try" and "only" options:
+
+use Test::More;
+use strict;
+
+BEGIN
+ {
+ $| = 1;
+ chdir 't' if -d 't';
+ unshift @INC, '../lib';
+ 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/)
+ {
+ $rc = eval ('bignum->import( "$_" => "bar" );');
+ like ($@, qr/^Unknown option $_/i, 'died'); # should die
+ }
+