fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / configure / 017-revision_from_cache.t
blobe476c5ccbae0adb7eede91ff5da2bca757706439
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 017-revision_from_cache.t
6 use strict;
7 use warnings;
9 use Test::More;
10 if (-e 'DEVELOPING' and ! -e 'Makefile') {
11     plan tests =>  7;
13 else {
14     plan skip_all =>
15         q{Relevant only when working in checkout from repository and prior to configuration};
17 use Carp;
18 use Cwd;
19 use File::Copy;
20 use File::Path ();
21 use File::Temp qw| tempdir |;
22 use lib qw( lib );
24 my $cwd = cwd();
26     my $rev = 16000;
27     my ($cache, $libdir) = setup_cache($rev, $cwd);
28     require Parrot::Revision;
29     no warnings 'once';
30     is($Parrot::Revision::current, $rev,
31         "Got expected revision number from cache");
32     use warnings;
33     unlink qq{$libdir/Parrot/Revision.pm}
34         or croak "Unable to delete file after testing";
35     ok( chdir $cwd, "Able to change back to starting directory");
38 pass("Completed all tests in $0");
40 ##### SUBROUTINES #####
42 sub setup_cache {
43     my ($rev, $cwd) = @_;
44     my $tdir = tempdir( CLEANUP => 1 );
45     ok( chdir $tdir, "Changed to temporary directory for testing" );
46     my $libdir = qq{$tdir/lib};
47     ok( (File::Path::mkpath( [ $libdir ], 0, 0777 )), "Able to make libdir");
48     local @INC;
49     unshift @INC, $libdir;
50     ok( (File::Path::mkpath( [ qq{$libdir/Parrot} ], 0, 0777 )), "Able to make Parrot dir");
51     ok( (copy qq{$cwd/lib/Parrot/Revision.pm},
52             qq{$libdir/Parrot}), "Able to copy Parrot::Revision");
53     my $cache = q{.parrot_current_rev};
54     open my $FH, ">", $cache
55         or croak "Unable to open $cache for writing";
56     print $FH qq{$rev\n};
57     close $FH or croak "Unable to close $cache after writing";
58     return ($cache, $libdir);
61 ################### DOCUMENTATION ###################
63 =head1 NAME
65 017-revision_from_cache.t - test Parrot::Revision
67 =head1 SYNOPSIS
69     % prove t/configure/017-revision_from_cache.t
71 =head1 DESCRIPTION
73 The files in this directory test functionality used by F<Configure.pl>.
75 The tests in this file test Parrot::Revision (F<lib/Parrot/Revision.pm>).
77 =head1 AUTHOR
79 James E Keenan
81 =head1 SEE ALSO
83 Parrot::Configure, F<Configure.pl>.
85 =cut
87 # Local Variables:
88 #   mode: cperl
89 #   cperl-indent-level: 4
90 #   fill-column: 100
91 # End:
92 # vim: expandtab shiftwidth=4: