File: 10_basic.t

package info (click to toggle)
libperl-prereqscanner-notquitelite-perl 0.9917-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 944 kB
  • sloc: perl: 5,239; makefile: 2
file content (264 lines) | stat: -rw-r--r-- 6,953 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/../../../";
use Test::More;
use t::Util;

# compatibility test with Module::ExtractUse

test('useSome::Module', <<'END', used());
useSome::Module1;
END

test('use Some::Module2', <<'END', used(qw/Some::Module2/));
use Some::Module2;
END

test('useless stuff', <<'END', used(qw/Some::Module3/));
yadda yadda useless stuff;
use Some::Module3 qw/$VERSION @EXPORT @EXPORT_OK/;
END

# base is not listed in as of M::EU 0.33
test('use base', <<'END', used(qw/base Class::DBI4 Foo::Bar5/));
use base qw(Class::DBI4 Foo::Bar5);
END

test('use in if block', <<'END', used(qw/Foo::Bar6/));
if ($foo) { use Foo::Bar6; }
END

test('use constant', <<'END', used(qw/constant/));
use constant dl_ext => $Config{dlext};
END

test('use strict', <<'END', used(qw/strict/));
use strict;
END

test('use Foo args', <<'END', used(qw/Foo8/));
use Foo8 qw/asdfsdf/;
END

test('$use', <<'END', used());
$use=stuff;
END

test('abuse', <<'END', used());
abuse Stuff;
END

test('package', <<'END', used());
package Module::ScanDeps;
END

# XXX: incompatibility
# M::EU 0.33 returns Bar7
test('require in if block', <<'END', used());
if ($foo) { require "Bar7"; }
END

test('require file', <<'END', used());
require "some/stuff.pl";
END

# XXX: incompatibility
# M::EU 0.33 returns Foo::Bar9, which seems a bug, but it may be (or
# may not be) nice to have Foo/Bar.pm => Foo::Bar conversion here.
test('require .pm file', <<'END', used());
require "Foo/Bar.pm9";
END

test('require namespace', <<'END', used(qw/Foo10/));
require Foo10;
END

test('two uses in a line', <<'END', used(qw/Some::Module11 Some::Other::Module12/));
use Some::Module11;use Some::Other::Module12;
END

test('two uses', <<'END', used(qw/Some::Module Some::Other::Module/));
use Some::Module;
use Some::Other::Module;
END

test('use vars', <<'END', used(qw/vars/));
use vars qw/$VERSION @EXPORT @EXPORT_OK/;
END

test('use in comment', <<'END', used());
unless ref $obj;  # use ref as $obj
END

test('use in string', <<'END', used());
$self->_carp("$name trigger deprecated: use before_$name or after_$name instead");
END

test('use base', <<'END', used(qw/base Exporter1/));
use base 'Exporter1';
END

test('use base with parentheses', <<'END', used(qw/base Class::DBI2/));
use base ("Class::DBI2");
END

test('use base with string', <<'END', used(qw/base Class::DBI3/));
use base "Class::DBI3";
END

test('use base with qw', <<'END', used(qw/base Class::DBI4 Foo::Bar5/));
use base qw/Class::DBI4 Foo::Bar5/;
END

test('use base with parentheses (2)', <<'END', used(qw/base Class::DBI6 Foo::Bar7/));
use base ("Class::DBI6","Foo::Bar7");
END

test('use base with strings', <<'END', used(qw/base Class::DBI8 Foo::Bar9/));
use base "Class::DBI8","Foo::Bar9";
END

test('use parent', <<'END', used(qw/parent Exporter1/));
use parent 'Exporter1';
END

test('use parent with parentheses', <<'END', used(qw/parent Class::DBI2/));
use parent ("Class::DBI2");
END

test('use parent with string', <<'END', used(qw/parent Class::DBI3/));
use parent "Class::DBI3";
END

test('use parent with qw', <<'END', used(qw/parent Class::DBI4 Foo::Bar5/));
use parent qw/Class::DBI4 Foo::Bar5/;
END

test('use parent with parentheses (2)', <<'END', used(qw/parent Class::DBI6 Foo::Bar7/));
use parent ("Class::DBI6","Foo::Bar7");
END

test('use parent with strings', <<'END', used(qw/parent Class::DBI8 Foo::Bar9/));
use parent "Class::DBI8","Foo::Bar9";
END

test('use parent -norequire string', <<'END', used(qw/parent/));
use parent -norequire, 'Exporter1';
END

test('use parent -norequire in parentheses', <<'END', used(qw/parent/));
use parent (-norequire, "Class::DBI2");
END

test('use parent "-norequire" string', <<'END', used(qw/parent/));
use parent "-norequire", "Class::DBI3";
END

test('use parent -norequire in qw', <<'END', used(qw/parent/));
use parent qw/-norequire Class::DBI4 Foo::Bar5/;
END

test('use parent -norequire in parentheses', <<'END', used(qw/parent/));
use parent (-norequire,"Class::DBI6","Foo::Bar7");
END

test('use parent -norequire strings', <<'END', used(qw/parent/));
use parent -norequire,"Class::DBI8","Foo::Bar9";
END

test('use in eval', <<'END', used(), {'Test::Pod' => 1.06});
eval "use Test::Pod 1.06";
END

test('uses in two evals', <<'END', used(qw/strict Test::More/), {'Test::Pod' => 1.06, 'Test::Pod::Coverage' => 1.06});
#!/usr/bin/perl -w
use strict;
use Test::More;
eval "use Test::Pod 1.06";
eval 'use Test::Pod::Coverage 1.06;';
plan skip_all => "Test::Pod 1.06 required for testing POD" if $@;
all_pod_files_ok();
END

test('use base with qw and whitespaces', <<'END', used(qw/base Data::Phrasebook::Loader::Base Data::Phrasebook::Debug/));
use base qw( Data::Phrasebook::Loader::Base Data::Phrasebook::Debug );
END

test('RT #83569', <<'END', used(qw/warnings strict Test::More lib DBIx::Class DBICTest Test::Pod/));
use warnings;
use strict;

use Test::More;
use lib qw(t/lib);
use DBICTest;

require DBIx::Class;
unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_pod') ) {
  my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_pod');
  $ENV{RELEASE_TESTING}
    ? die ("Failed to load release-testing module requirements: $missing")
    : plan skip_all => "Test needs: $missing"
}

# this has already been required but leave it here for CPANTS static analysis
require Test::Pod;

my $generated_pod_dir = 'maint/.Generated_Pod';
Test::Pod::all_pod_files_ok( 'lib', -d $generated_pod_dir ? $generated_pod_dir : () );
END

test('require in string', <<'END', used(qw/Foo/));
use Foo;say "Failed to load the release-testing modules we require: Bar;"
END

test('require in string', <<'END', used(qw/Foo/));
use Foo;say "Failed to load the release-testing modules we require: Bar";
END

# dup
test('require in string', <<'END', used(qw/Foo/));
use Foo;say "Failed to load the release-testing modules we require: Bar;"
END

test('use Data::Section -setup', <<'END', used(qw/Data::Section/));
use Data::Section -setup;
END

test('use Data::Section with hashref', <<'END', used(qw/Data::Section/));
use Data::Section { installer => method_installer }, -setup;
END

test('use Data::Section -setup hashref', <<'END', used(qw/Data::Section/));
use Data::Section -setup => { header_re => qr/^\@\@\s*(\S+)/ };
END

test('use Module ()', <<'END', used(qw/Foo::Bar29/));
use Foo::Bar29 ();
END

test('use Module version ()', <<'END', {'Min::Version30' => 1.2});
use Min::Version30 1.2 ();
END

test('use MooseX::Types -declare', <<'END', used(qw/MooseX::Types/));
use MooseX::Types -declare => [qw(BorderStyle Component Container)];
END

test('require in eval block', <<'END', {}, used(qw/Foo::Bar32/));
eval { require Foo::Bar32 };
END

test('use in do block', <<'END', used(qw/Foo::Bar33/));
do { use Foo::Bar33 };
END

test('use version', <<'END', used(qw/version/));
use version;
END

test('use version VERSION', <<'END', {version => '0.77'});
use version 0.77;
END

done_testing;