fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / configure / 023-version.t
blobf83ce716c156554d0ffdd4d2a039db886d687bad
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 023-version.t
6 use strict;
7 use warnings;
9 use Test::More tests => 14;
10 use Carp;
11 use Cwd;
12 use File::Copy;
13 use File::Temp qw| tempdir |;
14 use lib qw( lib t/configure/testlib );
15 use Parrot::BuildUtil;
16 use Make_VERSION_File qw| make_VERSION_file |;
18 my $cwd = cwd();
20     my $tdir = tempdir( CLEANUP => 1 );
21     ok( chdir $tdir, "Changed to temporary directory for testing" );
22     ok( ( mkdir "lib" ),        "Able to make directory lib" );
23     ok( ( mkdir "lib/Parrot" ), "Able to make directory lib/Parrot" );
25     # Case 5:  Valid version number
26     make_VERSION_file(q{0.4.11});
27     my ( $pv, @pv );
28     @pv = Parrot::BuildUtil::parrot_version();
29     is_deeply( \@pv, [ 0, 4, 11 ],
30         "Correct version number returned in list context" );
32     $pv = Parrot::BuildUtil::parrot_version();
33     is( $pv, q{0.4.11},
34         "Correct version number returned in scalar context" );
36     unlink q{VERSION}
37         or croak "Unable to delete file from tempdir after testing";
38     ok( chdir $cwd, "Able to change back to directory after testing" );
42     my $tdir = tempdir( CLEANUP => 1 );
43     ok( chdir $tdir, "Changed to temporary directory for testing" );
44     my $rv = set_bc_version(q{3.07});
45     my ($bc_major, $bc_minor) = Parrot::BuildUtil::get_bc_version();
46     is( $bc_major, 3, "Got expected bytecode major version" );
47     is( $bc_minor, 7, "Got expected bytecode minor version" );
49     ok( chdir $cwd, "Able to change back to directory after testing" );
53     my $tdir = tempdir( CLEANUP => 1 );
54     ok( chdir $tdir, "Changed to temporary directory for testing" );
55     my $rv = set_bc_version(q{3.tomboy});
56     eval {
57         my ($bc_major, $bc_minor) = Parrot::BuildUtil::get_bc_version();
58     };
59     like( $@, qr/No bytecode version found/,
60         "Got expected error message on failure to find bytecode version" );
62     ok( chdir $cwd, "Able to change back to directory after testing" );
65 pass("Completed all tests in $0");
67 sub set_bc_version {
68     my $version_str = shift;
69     my $compat_file = 'PBC_COMPAT';
70     my ( $bc_major, $bc_minor );
71     open my $OUT, '>', $compat_file or die "Can't write $compat_file";
72     print $OUT "$version_str\n";
73     close $OUT;
74     return 1;
77 ################### DOCUMENTATION ###################
79 =head1 NAME
81 023-version.t - test C<Parrot::BuildUtil::parrot_version()>
83 =head1 SYNOPSIS
85     % prove t/configure/023-version.t
87 =head1 DESCRIPTION
89 The files in this directory test functionality used by F<Configure.pl>.
91 The tests in this file test Parrot::BuildUtil (F<lib/Parrot/BuildUtil.pm>).
93 =head1 AUTHOR
95 James E Keenan
97 =head1 SEE ALSO
99 Parrot::BuildUtil, F<Configure.pl>.
101 =cut
103 # Local Variables:
104 #   mode: cperl
105 #   cperl-indent-level: 4
106 #   fill-column: 100
107 # End:
108 # vim: expandtab shiftwidth=4: