1*256a93a4Safresh1# -*- mode: perl; -*-
2*256a93a4Safresh1
3*256a93a4Safresh1# test the "l", "lib", "try" and "only" options:
4*256a93a4Safresh1
5*256a93a4Safresh1use strict;
6*256a93a4Safresh1use warnings;
7*256a93a4Safresh1
8*256a93a4Safresh1use Test::More tests => 14;
9*256a93a4Safresh1
10*256a93a4Safresh1use bigint;
11*256a93a4Safresh1
12*256a93a4Safresh1# Catch warning.
13*256a93a4Safresh1
14*256a93a4Safresh1my $warning;
15*256a93a4Safresh1local $SIG{__WARN__} = sub {
16*256a93a4Safresh1    $warning = $_[0];
17*256a93a4Safresh1};
18*256a93a4Safresh1
19*256a93a4Safresh1my $rc;
20*256a93a4Safresh1
21*256a93a4Safresh1$warning = "";
22*256a93a4Safresh1$rc = eval { bigint->import("l" => "foo") };
23*256a93a4Safresh1subtest qq|eval { bigint->import("l" => "foo") }| => sub {
24*256a93a4Safresh1    plan tests => 2;
25*256a93a4Safresh1
26*256a93a4Safresh1    is($@, '', "didn't die");
27*256a93a4Safresh1    is($warning, "", "didn't get a warning");
28*256a93a4Safresh1};
29*256a93a4Safresh1
30*256a93a4Safresh1$warning = "";
31*256a93a4Safresh1$rc = eval { bigint->import("lib" => "foo") };
32*256a93a4Safresh1subtest qq|eval { bigint->import("lib" => "foo") }| => sub {
33*256a93a4Safresh1    plan tests => 2;
34*256a93a4Safresh1
35*256a93a4Safresh1    is($@, '', "didn't die");
36*256a93a4Safresh1    is($warning, "", "didn't get a warning");
37*256a93a4Safresh1};
38*256a93a4Safresh1
39*256a93a4Safresh1$warning = "";
40*256a93a4Safresh1$rc = eval { bigint->import("try" => "foo") };
41*256a93a4Safresh1subtest qq|eval { bigint->import("try" => "foo") }| => sub {
42*256a93a4Safresh1    plan tests => 2;
43*256a93a4Safresh1
44*256a93a4Safresh1    is($@, '', "didn't die");
45*256a93a4Safresh1    is($warning, "", "didn't get a warning");
46*256a93a4Safresh1};
47*256a93a4Safresh1
48*256a93a4Safresh1$warning = "";
49*256a93a4Safresh1$rc = eval { bigint->import("only" => "foo") };
50*256a93a4Safresh1subtest qq|eval { bigint->import("only" => "foo") }| => sub {
51*256a93a4Safresh1    plan tests => 2;
52*256a93a4Safresh1
53*256a93a4Safresh1    is($@, '', "didn't die");
54*256a93a4Safresh1    is($warning, "", "didn't get a warning");
55*256a93a4Safresh1};
56*256a93a4Safresh1
57*256a93a4Safresh1$warning = "";
58*256a93a4Safresh1$rc = eval { bigint->import("foo" => "bar") };
59*256a93a4Safresh1subtest qq|eval { bigint->import("foo" => "bar") }| => sub {
60*256a93a4Safresh1    plan tests => 2;
61*256a93a4Safresh1
62*256a93a4Safresh1    is($@, '', "didn't die");
63*256a93a4Safresh1    is($warning, "", "didn't get a warning");
64*256a93a4Safresh1};
65*256a93a4Safresh1
66*256a93a4Safresh1# test that options are only lowercase (don't see a reason why allow UPPER)
67*256a93a4Safresh1
68*256a93a4Safresh1foreach (qw/L LIB Lib T Trace TRACE V Version VERSION/) {
69*256a93a4Safresh1    $rc = eval { bigint->import($_ => "bar") };
70*256a93a4Safresh1    like($@, qr/^Unknown option /i,
71*256a93a4Safresh1         qq|eval { bigint->import($_ => "bar") }|);
72*256a93a4Safresh1}
73