4 use Test::More tests => 32;
6 BEGIN { require_ok('Module::CoreList'); }
8 ok($Module::CoreList::version{5.00503}, "5.00503");
10 ok(!exists $Module::CoreList::version{5.00503}{attributes},
11 "attributes weren't in 5.00503");
13 ok($Module::CoreList::version{5.006001}, "5.006001");
15 ok(exists $Module::CoreList::version{'5.006001'}{attributes},
16 "attributes were in 5.6.1");
18 ok($Module::CoreList::version{5.007003}, "5.007003");
20 ok(exists $Module::CoreList::version{5.007003}{'Attribute::Handlers'},
21 "Attribute::Handlers were bundled with 5.7.3");
23 is(Module::CoreList->first_release_by_date('File::Spec'), 5.005,
24 "File::Spec was first bundled in 5.005");
26 is(Module::CoreList->first_release('File::Spec'), 5.00405,
27 "File::Spec was released in perl with lowest version number 5.00405");
29 is(Module::CoreList->first_release('File::Spec', 0.82), 5.006_001,
30 "File::Spec reached 0.82 with 5.006_001");
32 is(Module::CoreList::first_release_by_date('File::Spec'), 5.005,
33 "File::Spec was first bundled in 5.005");
35 is(Module::CoreList::first_release('File::Spec'), 5.00405,
36 "File::Spec was released in perl with lowest version number 5.00405");
38 is(Module::CoreList::first_release('File::Spec', 0.82), 5.006_001,
39 "File::Spec reached 0.82 with 5.006_001");
41 ok(!Module::CoreList::first_release('Filespec'),
42 "Filespec was never a core module. It's called VMS::Filespec");
44 is_deeply([ sort keys %Module::CoreList::released ],
45 [ sort keys %Module::CoreList::version ],
46 "have a note of everythings release");
49 exists $Module::CoreList::version{ $_ }{FindExt} ? $_ : ()
50 } keys %Module::CoreList::version ],
51 [], "FindExt shouldn't get included rt#6922" );
55 for my $family (values %Module::CoreList::families) {
56 my $first = shift @$family;
57 my $has = join " ", sort keys %{ $Module::CoreList::versions{ $first } };
58 for my $member (@$family) {
59 $has eq join " ", sort keys %{ $Module::CoreList::versions{ $member } }
60 or do { diag "$first -> $member family"; $consistent = 0 };
64 "families seem consistent (descendants have same modules as ancestors)" );
66 # Check the function API for consistency
68 is(Module::CoreList->first_release_by_date('Module::CoreList'), 5.009002,
69 "Module::CoreList was first bundled in 5.009002");
71 is(Module::CoreList->first_release('Module::CoreList'), 5.008009,
72 "Module::CoreList was released in perl with lowest version number 5.008009");
74 is(Module::CoreList->first_release('Module::CoreList', 2.18), 5.010001,
75 "Module::CoreList reached 2.18 with 5.010001");
77 is(Module::CoreList::first_release_by_date('Module::CoreList'), 5.009002,
78 "Module::CoreList was first bundled in 5.009002");
80 is(Module::CoreList::first_release('Module::CoreList'), 5.008009,
81 "Module::CoreList was released in perl with lowest version number 5.008009");
83 is(Module::CoreList::first_release('Module::CoreList', 2.18), 5.010001,
84 "Module::CoreList reached 2.18 with 5.010001");
86 is(Module::CoreList->removed_from('CPANPLUS::inc'), 5.010001,
87 "CPANPLUS::inc was removed from 5.010001");
89 is(Module::CoreList::removed_from('CPANPLUS::inc'), 5.010001,
90 "CPANPLUS::inc was removed from 5.010001");
93 my $warnings_count = 0;
94 local $SIG{__WARN__} = sub { $warnings_count++ };
97 ok(exists $Module::CoreList::version{5}{strict},
100 ok(!defined $Module::CoreList::version{5}{strict},
101 "strict had no version in 5");
103 is(Module::CoreList::first_release('strict', 1.01), 5.00405,
104 "strict reached 1.01 with 5.00405");
106 cmp_ok($warnings_count, '==', 0,
107 "an undefined version does not produce warnings rt#123556");
110 ok(! defined(Module::CoreList->find_version()),
111 "Lacking an argument, Module::CoreList->find_version() returns undef");
113 is(ref(Module::CoreList->find_version($v)), 'HASH',
114 "With argument, Module::CoreList->find_version() returns hashref");
116 is(ref(Module::CoreList->find_version($v)), 'HASH',
117 "With argument, Module::CoreList->find_version() returns hashref");