fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / distro / manifest_generated.t
blob9ae54bf3a1e67ae98457cf8cbda66882e63a57c3
1 #! perl
2 # Copyright (C) 2010, Parrot Foundation.
3 # $Id$
5 use strict;
6 use warnings;
7 use lib qw( . lib ../lib ../../lib );
9 use Test::More;
10 plan(tests => 5);
12 =head1 NAME
14 t/distro/manifest_generated.t - check sanity of MANIFEST.generated file
16 =head1 SYNOPSIS
18     % prove t/distro/manifest_generated.t
20 =head1 DESCRIPTION
22 Checks that MANIFEST.generated is in the required format (eg: sorted) and that it
23 contains appropriate items (eg: PMC generated files).
25 =cut
27 ok( -e 'MANIFEST.generated', 'MANIFEST.generated exists' );
29 # slurp MANIFEST.generated, ignoring comment lines
30 open my $fh, '<', 'MANIFEST.generated'
31     or die "open MANIFEST.generated: $!";
32 my @contents = grep {!/^#/} map {chomp; $_} <$fh>;
33 close $fh;
35 is_deeply([sort @contents], \@contents, 'MANIFEST.generated is sorted');
37 # parse records
38 my @records;
39 is_deeply(  [grep {
40         my $match = m/^ (\S+) \s+ (\[ \w* \] \w*) $/x;
41         push @records, [$1, $2] if $match;
42         not $match } @contents],
43         [],
44         'MANIFEST.generated contains no irregular records' );
46 # check for appropriate contents
47 my %contained_files = map {$$_[0] => 1} @records;
48 is_deeply(  [],
49         [grep {not exists $contained_files{$_}} glob('include/pmc/*.h')],
50         'MANIFEST.generated lists all core PMC headers' );
52 is_deeply(  [],
53         [grep {not exists $contained_files{$_}} glob('src/pmc/*.dump')],
54         'MANIFEST.generated lists all core PMC dump files' )
56 # Local Variables:
57 #   mode: cperl
58 #   cperl-indent-level: 4
59 #   fill-column: 100
60 # End:
61 # vim: expandtab shiftwidth=4: