fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / configure / 025-options_test.t
blob76cd4b6b1facf2565c720552e8d0265aab9103d6
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 025-options_test.t
6 use strict;
7 use warnings;
8 use Carp;
9 use Cwd;
10 use File::Temp qw( tempdir );
11 use Test::More tests =>  7;
12 use lib qw( lib );
13 use IO::CaptureOutput qw| capture |;
14 use Parrot::Configure::Options qw| process_options |;
15 use Parrot::Configure::Options::Test;
17 my ( $args, $step_list_ref ) = process_options(
18     {
19         argv => [q{--test}],
20         mode => q{configure},
21     }
23 ok( defined $args,
24     "process_options() returned successfully when options were specified" );
26 my $opttest = Parrot::Configure::Options::Test->new($args);
27 ok( defined $opttest, "Constructor returned successfully" );
29 # Running the actual pre- and post-configuration tests would be too
30 # time-consuming.  So instead, we want to redefine the lists of tests to be
31 # run to include only dummy test files found in temporary directories.
33 my $cwd = cwd();
35 my $teststring = <<"TEST";
36 use Test::More tests => 1;
38     pass("Dummy test passed");
40 TEST
43     my $tdir = tempdir( CLEANUP => 1 );
44     ok( ( chdir $tdir ), "Changed to temporary directory for testing" );
45     my $test = q{testfile};
46     open my $T, ">", $test
47         or die "Unable to open dummy test file for writing";
48     print $T $teststring;
49     close $T or die "Unable to close dummy test file after writing";
51     no warnings 'once';
53     my $reason = q{Devel::Cover gags on this test};
55     {
56         my ($rv, $stdout);
57     SKIP: {
58             skip $reason, 1 if $ENV{PERL5OPT};
59             capture (
60                 sub { $rv = $opttest->run_configure_tests($test); },
61                 \$stdout
62             );
63             ok( $rv, "Configuration tests are runnable" );
64         }
65     }
67     {
68         my ($rv, $stdout);
69     SKIP: {
70             skip $reason, 1 if $ENV{PERL5OPT};
71             capture (
72                 sub { $rv = $opttest->run_build_tests($test); },
73                 \$stdout
74             );
75             ok( $rv, "Build tests are runnable" );
76         }
77     }
78     unlink $test or croak "Unable to delete $test";
80     ok( ( chdir $cwd ), "Changed back to starting directory after testing" );
83 pass("Completed all tests in $0");
85 ################### DOCUMENTATION ###################
87 =head1 NAME
89 025-options_test.t - test Parrot::Configure::Options::Test
91 =head1 SYNOPSIS
93     % prove t/configure/025-options_test.t
95 =head1 DESCRIPTION
97 The files in this directory test functionality used by F<Configure.pl>.
99 The tests in this file test Parrot::Configure::Options::Test methods.
101 =head1 AUTHOR
103 James E Keenan
105 =head1 SEE ALSO
107 Parrot::Configure::Options, F<Configure.pl>.
109 =cut
111 # Local Variables:
112 #   mode: cperl
113 #   cperl-indent-level: 4
114 #   fill-column: 100
115 # End:
116 # vim: expandtab shiftwidth=4: