fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / configure / 061-revision_from_cache.t
blobd783c1f1539d0fb04cc80e84a2ae7e48fc5f8c29
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 061-revision_from_cache.t
6 use strict;
7 use warnings;
9 use Test::More;
10 #plan( skip_all =>
11 #    "\nRelevant only when working in checkout from repository and during configuration" )
12 #    unless (-e 'DEVELOPING' and ! -e 'Makefile');
13 #plan( tests => 25 );
14 if (-e 'DEVELOPING' and ! -e 'Makefile') {
15     plan tests => 25;
17 else {
18     plan skip_all =>
19         q{Relevant only when working in checkout from repository and prior to configuration};
21 use Carp;
22 use Cwd;
23 use File::Copy;
24 use File::Path ();
25 use File::Temp qw| tempdir |;
26 use lib qw( lib );
27 use Parrot::Revision ();
29 my $cwd = cwd();
30 {   # revision undef
31     my $rev = 16000;
32     my ($cache, $libdir) = setup_cache($rev, $cwd);
33     my $prev = 34567;
34     my $revision = undef;
35     my $current = 12345;
36     my $ret = Parrot::Revision::_handle_update( {
37         prev        => $prev,
38         revision    => $revision,
39         cache       => $cache,
40         current     => $current,
41     } );
42     is($ret, q{unknown}, "Got expected return value from _handle_update");
43     unlink qq{$libdir/Parrot/Revision.pm}
44         or croak "Unable to delete file after testing";
45     ok( chdir $cwd, "Able to change back to starting directory");
48 {   # prev undef
49     my $rev = 16000;
50     my ($cache, $libdir) = setup_cache($rev, $cwd);
51     my $revision = 67890;
52     my $current = 12345;
53     my $ret = Parrot::Revision::_handle_update( {
54         prev        => undef,
55         revision    => $revision,
56         cache       => $cache,
57         current     => $current,
58     } );
59     is($ret, $current, "Got expected return value from _handle_update");
60     unlink qq{$libdir/Parrot/Revision.pm}
61         or croak "Unable to delete file after testing";
62     ok( chdir $cwd, "Able to change back to starting directory");
65 {   # prev and revision both defined and identical
66     my $rev = 16000;
67     my ($cache, $libdir) = setup_cache($rev, $cwd);
68     my $prev = 67890;
69     my $revision = 67890;
70     my $current = 12345;
71     my $ret = Parrot::Revision::_handle_update( {
72         prev        => $prev,
73         revision    => $revision,
74         cache       => $cache,
75         current     => $current,
76     } );
77     is($ret, $current, "Got expected return value from _handle_update");
78     unlink qq{$libdir/Parrot/Revision.pm}
79         or croak "Unable to delete file after testing";
80     ok( chdir $cwd, "Able to change back to starting directory");
83 {   # prev and revision both defined but not  identical
84     my $rev = 16000;
85     my ($cache, $libdir) = setup_cache($rev, $cwd);
86     my $prev = 67890;
87     my $revision = 67891;
88     my $current = 12345;
89     my $ret = Parrot::Revision::_handle_update( {
90         prev        => $prev,
91         revision    => $revision,
92         cache       => $cache,
93         current     => $current,
94     } );
95     is($ret, $revision, "Got expected return value from _handle_update");
96     unlink qq{$libdir/Parrot/Revision.pm}
97         or croak "Unable to delete file after testing";
98     ok( chdir $cwd, "Able to change back to starting directory");
101 pass("Completed all tests in $0");
104 ##### SUBROUTINES #####
106 sub setup_cache {
107     my ($rev, $cwd) = @_;
108     my $tdir = tempdir( CLEANUP => 1 );
109     ok( chdir $tdir, "Changed to temporary directory for testing" );
110     my $libdir = qq{$tdir/lib};
111     ok( (File::Path::mkpath( [ $libdir ], 0, 0777 )), "Able to make libdir");
112     local @INC;
113     unshift @INC, $libdir;
114     ok( (File::Path::mkpath( [ qq{$libdir/Parrot} ], 0, 0777 )), "Able to make Parrot dir");
115     ok( (copy qq{$cwd/lib/Parrot/Revision.pm},
116             qq{$libdir/Parrot}), "Able to copy Parrot::Revision");
117     my $cache = q{.parrot_current_rev};
118     open my $FH, ">", $cache
119         or croak "Unable to open $cache for writing";
120     print $FH qq{$rev\n};
121     close $FH or croak "Unable to close $cache after writing";
122     return ($cache, $libdir);
125 ################### DOCUMENTATION ###################
127 =head1 NAME
129 061-revision_from_cache.t - test Parrot::Revision
131 =head1 SYNOPSIS
133     % prove t/configure/061-revision_from_cache.t
135 =head1 DESCRIPTION
137 The files in this directory test functionality used by F<Configure.pl>.
139 The tests in this file test Parrot::Revision (F<lib/Parrot/Revision.pm>).
141 =head1 AUTHOR
143 James E Keenan
145 =head1 SEE ALSO
147 Parrot::Configure, F<Configure.pl>.
149 =cut
151 # Local Variables:
152 #   mode: cperl
153 #   cperl-indent-level: 4
154 #   fill-column: 100
155 # End:
156 # vim: expandtab shiftwidth=4: