fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / configure / 026-options_test.t
blob9d6c7219e971df18866a444cba082429c8abed77
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 026-options_test.t
6 use strict;
7 use warnings;
8 use Carp;
9 use Cwd;
10 use Test::More tests => 20;
11 use lib qw( lib );
12 use IO::CaptureOutput qw| capture |;
13 use Parrot::Configure::Options qw| process_options |;
14 use Parrot::Configure::Options::Test;
15 use Parrot::Configure::Options::Test::Prepare qw|
16     get_preconfiguration_tests
17     get_postconfiguration_tests
20 ##### 1 #####
21 my ( $args, $step_list_ref ) = process_options(
22     {
23         argv => [],
24         mode => q{configure},
25     }
27 ok( defined $args,
28     "process_options() returned successfully when no options were specified" );
30 my $opttest = Parrot::Configure::Options::Test->new($args);
31 ok( defined $opttest, "Constructor returned successfully" );
34     my $stdout;
35     capture(
36         sub { $opttest->run_configure_tests( get_preconfiguration_tests() ); },
37         \$stdout,
38     );
39     ok( ! $stdout,
40         "Nothing captured because no pre-configuration tests were run." );
44     my $stdout;
45     capture(
46         sub { $opttest->run_build_tests( get_postconfiguration_tests() ); },
47         \$stdout,
48     );
49     ok( ! $stdout,
50         "Nothing captured because no pre-build tests were run." );
53 ##### 2 #####
54 ($args, $step_list_ref) = process_options(
55     {
56         argv => [q{--test=configure}],
57         mode => q{configure},
58     }
60 ok( defined $args,
61     "process_options() returned successfully when '--test=configure' was specified" );
63 $opttest = Parrot::Configure::Options::Test->new($args);
64 ok( defined $opttest, "Constructor returned successfully" );
66 ##### 3 #####
67 ($args, $step_list_ref) = process_options(
68     {
69         argv => [q{--test=build}],
70         mode => q{configure},
71     }
73 ok( defined $args,
74     "process_options() returned successfully when '--test=build' was specified" );
76 $opttest = Parrot::Configure::Options::Test->new($args);
77 ok( defined $opttest, "Constructor returned successfully" );
79 ##### 4 #####
80 my $badoption = q{foobar};
81 ($args, $step_list_ref) = process_options(
82     {
83         argv => [qq{--test=$badoption}],
84         mode => q{configure},
85     }
87 ok( defined $args,
88     "process_options() returned successfully when '--test=$badoption' was specified" );
90 eval { $opttest = Parrot::Configure::Options::Test->new($args); };
91 like(
92     $@,
93     qr/'$badoption' is a bad value/,
94     "Bad option to '--test' correctly detected"
97 ##### 5 #####
98 ($args, $step_list_ref) = process_options(
99     {
100         argv => [],
101         mode => q{configure},
102     }
104 ok( defined $args,
105     "process_options() returned successfully when no options were specified" );
107 $opttest = Parrot::Configure::Options::Test->new($args);
108 ok( defined $opttest, "Constructor returned successfully" );
110 eval { $opttest->set( 'foobar' ); };
111 like($@, qr/Need 2 arguments to Parrot::Configure::Options::Test::set/,
112     "Correctly detected lack of argument to set()");
114 $opttest->set( foo => 'bar' );
115 is($opttest->get( 'foo' ), 'bar', "set() set value correctly");
117 eval { $opttest->get( foo => 'bar' ); };
118 like($@, qr/Need 1 argument to Parrot::Configure::Options::Test::get/,
119     "Correctly detected wrong number of arguments to get()");
121 ok(! defined $opttest->get( 'baz' ),
122     "Correctly detected value which never was set");
124 eval { $opttest->set_run( 'foobar' ); };
125 like($@, qr/Need 2 arguments to Parrot::Configure::Options::Test::set_run/,
126     "Correctly detected lack of argument to set_run()");
128 $opttest->set_run( foo => 'bar' );
129 is($opttest->get_run( 'foo' ), 'bar', "set_run() set value correctly");
131 eval { $opttest->get_run( foo => 'bar' ); };
132 like($@, qr/Need 1 argument to Parrot::Configure::Options::Test::get_run/,
133     "Correctly detected wrong number of arguments to get_run()");
135 pass("Completed all tests in $0");
137 ################### DOCUMENTATION ###################
139 =head1 NAME
141 026-options_test.t - test Parrot::Configure::Options::Test
143 =head1 SYNOPSIS
145     % prove t/configure/026-options_test.t
147 =head1 DESCRIPTION
149 The files in this directory test functionality used by F<Configure.pl>.
151 The tests in this file test Parrot::Configure::Options::Test methods.
153 =head1 AUTHOR
155 James E Keenan
157 =head1 SEE ALSO
159 Parrot::Configure::Options, F<Configure.pl>.
161 =cut
163 # Local Variables:
164 #   mode: cperl
165 #   cperl-indent-level: 4
166 #   fill-column: 100
167 # End:
168 # vim: expandtab shiftwidth=4: