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
|
#!/usr/bin/perl
use strict;
use warnings;
use ExtUtils::MakeMaker;
use Test::More 'no_plan';
sub test_abstract {
my($code, $package, $want, $name) = @_;
local $Test::Builder::Level = $Test::Builder::Level + 1;
my $file = "t/abstract.tmp";
{
open my $fh, ">", $file or die "Can't open $file";
print $fh $code;
close $fh;
}
# Hack up a minimal MakeMaker object.
my $mm = bless { DISTNAME => $package }, "MM";
my $have = $mm->parse_abstract($file);
my $ok = is( $have, $want, $name );
# Clean up the temp file, VMS style
1 while unlink $file;
return $ok;
}
test_abstract(<<END, "Foo", "Stuff and things", "Simple abstract");
=head1 NAME
Foo - Stuff and things
END
test_abstract(<<END, "NEXT", "Provide a pseudo-class NEXT (et al) that allows method redispatch", "Name.pm");
=head1 NAME
NEXT.pm - Provide a pseudo-class NEXT (et al) that allows method redispatch
END
test_abstract(<<END, "Compress::Raw::Zlib::FAQ", "Frequently Asked Questions about Compress::Raw::Zlib", "double dash");
=pod
Compress::Raw::Zlib::FAQ -- Frequently Asked Questions about Compress::Raw::Zlib
END
test_abstract(<<END, "Foo", "This is", "Only in POD");
# =pod
Foo - This is not in pod
=cut
Foo - This isn't in pod either
=pod
Foo - This is
Foo - So is this.
END
test_abstract(<<END, "Foo", "the abstract", "more spaces");
=pod
Foo - the abstract
END
|