[cage] Update release manager guide about committing to trunk near a release, based...
[parrot.git] / t / tools / install / 01-create_directories.t
blob286a67da3433a7409ffc1aab438fbe803e8264bc
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 01-create_directories.t
6 use strict;
7 use warnings;
9 use Test::More tests =>  6;
10 use Carp;
11 use File::Path qw( mkpath );
12 use File::Temp qw( tempdir );
13 use lib qw( lib );
14 use Parrot::Install qw(
15     create_directories
17 use IO::CaptureOutput qw( capture );
20     my $tdir = tempdir( CLEANUP => 1 );
21     $tdir .= '/';
23     my @dirs = qw(foo/bar foo/bar/baz);
24     create_directories($tdir, { map { $_ => 1 } @dirs });
25     my $dirs_seen = 0;
26     foreach my $d (@dirs) {
27         $dirs_seen++ if -d "$tdir$d";
28     }
29     is($dirs_seen, 2, 'got expected number of directories created');
33     my $tdir = tempdir( CLEANUP => 1 );
34     $tdir .= '/';
36     my @dirs = qw(foo/bar foo/bar/baz);
37     my @created = mkpath( [ "$tdir$dirs[0]" ], 0, 0777 );
38     ok( ( -d $created[0] ),
39         "one directory created before create_directories() is called" );
41     create_directories($tdir, { map { $_ => 1 } @dirs });
42     my $dirs_seen = 0;
43     foreach my $d (@dirs) {
44         $dirs_seen++ if -d "$tdir$d";
45     }
46     is($dirs_seen, 2,
47         "create_directories() handled case where one directory already existed" );
51     my $tdir = tempdir( CLEANUP => 1 );
52     $tdir .= '/';
54     my @dirs = qw(foo/bar foo/bar/baz);
55     my @created = mkpath( [ $tdir . 'foo' ], 0, 0777 );
56     ok( ( -d $created[0] ),
57         "one directory created before create_directories() is called" );
59     create_directories($tdir, { map { $_ => 1 } @dirs });
60     my $dirs_seen = 0;
61     foreach my $d (@dirs) {
62         $dirs_seen++ if -d "$tdir$d";
63     }
64     is($dirs_seen, 2,
65         "create_directories() handled case where one path partially existed" );
68 pass("Completed all tests in $0");
70 ################### DOCUMENTATION ###################
72 =head1 NAME
74 01-create_directories.t - test subroutines exported by C<Parrot::Install>
76 =head1 SYNOPSIS
78     % prove t/tools/install/01-create_directories.t
80 =head1 DESCRIPTION
82 The files in this directory test functionality used by
83 F<tools/dev/install_files.pl> and F<tools/dev/install_dev_files.pl> and
84 exported by F<lib/Parrot/Install.pm>.
86 =head1 AUTHOR
88 James E Keenan and Timothy S Nelson
90 =head1 SEE ALSO
92 Parrot::Install, F<tools/dev/install_files.pl>, F<tools/dev/install_dev_files.pl>
94 =cut
96 # Local Variables:
97 #   mode: cperl
98 #   cperl-indent-level: 4
99 #   fill-column: 100
100 # End:
101 # vim: expandtab shiftwidth=4: