fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / steps / auto / pcre-01.t
bloba3d361eaaff57b7e1a0bb07071aa895bfe268b1f
1 #! perl
2 # Copyright (C) 2007-2008, Parrot Foundation.
3 # $Id$
4 # auto/pcre-01.t
6 use strict;
7 use warnings;
8 use Test::More tests => 23;
9 use Carp;
10 use lib qw( lib );
11 use_ok('config::auto::pcre');
12 use Parrot::Configure::Options qw( process_options );
13 use Parrot::Configure::Step::Test;
14 use Parrot::Configure::Test qw(
15     test_step_constructor_and_description
17 use IO::CaptureOutput qw| capture |;
19 ########## --without-pcre ##########
21 my ($args, $step_list_ref) = process_options(
22     {
23         argv => [ q{--without-pcre} ],
24         mode => q{configure},
25     }
28 my $conf = Parrot::Configure::Step::Test->new;
29 $conf->include_config_results( $args );
31 my $serialized = $conf->pcfreeze();
33 my $pkg = q{auto::pcre};
35 $conf->add_steps($pkg);
36 $conf->options->set( %{$args} );
37 my $step = test_step_constructor_and_description($conf);
38 ok( $step->runstep($conf), "runstep() returned true value");
39 is( $step->result(), 'no', "Got expected result" );
40 is( $conf->data->get( 'HAS_PCRE' ), 0,
41     "Got expected value for 'HAS_PCRE'");
43 $conf->replenish($serialized);
45 ########## _select_lib() ##########
47 ($args, $step_list_ref) = process_options( {
48     argv => [ ],
49     mode => q{configure},
50 } );
51 $conf->add_steps($pkg);
52 $conf->options->set( %{$args} );
53 $step = test_step_constructor_and_description($conf);
55 # Mock values for OS and C-compiler
56 my ($osname, $cc, $initial_value);
58 $osname = 'mswin32';
59 $cc = 'gcc';
60 $initial_value = $conf->data->get( 'libs' );
61 is($step->_select_lib( {
62     conf            => $conf,
63     osname          => $osname,
64     cc              => $cc,
65     win32_nongcc    => 'pcre.lib',
66     default         => '-lpcre',
67 } ),
68    '-lpcre',
69    "_select_lib() returned expected value");
71 $osname = 'mswin32';
72 $cc = 'cc';
73 $initial_value = $conf->data->get( 'libs' );
74 is($step->_select_lib( {
75     conf            => $conf,
76     osname          => $osname,
77     cc              => $cc,
78     win32_nongcc    => 'pcre.lib',
79     default         => '-lpcre',
80 } ),
81    'pcre.lib',
82    "_select_lib() returned expected value");
84 $osname = 'foobar';
85 $cc = 'gcc';
86 $initial_value = $conf->data->get( 'libs' );
87 is($step->_select_lib( {
88     conf            => $conf,
89     osname          => $osname,
90     cc              => $cc,
91     win32_nongcc    => 'pcre.lib',
92     default         => '-lpcre',
93 } ),
94    '-lpcre',
95    "_select_lib() returned expected value");
97 ########## _evaluate_cc_run() ##########
99 # Mock different outcomes of _evaluate_cc_run
100 my ($test, $has_pcre);
102 $test = q{pcre foobar};
103 ok(! $step->_evaluate_cc_run($conf, $test),
104     "Got expected setting for HAS_PCRE");
106 $test = q{pcre 4.1};
107 ok($step->_evaluate_cc_run($conf, $test),
108     "_evaluate_cc_run returned true value as expected");
109 is($step->result(), q{yes, 4.1}, "Got expected PCRE version");
111 $conf->replenish($serialized);
113 ########## --verbose; _evaluate_cc_run() ##########
115 ($args, $step_list_ref) = process_options( {
116     argv => [ q{--verbose} ],
117     mode => q{configure},
118 } );
119 $conf->add_steps($pkg);
120 $conf->options->set( %{$args} );
121 $step = test_step_constructor_and_description($conf);
123 # Mock different outcomes of _evaluate_cc_run
125 $test = q{pcre 4.0};
127     my ($stdout, $stderr);
128     capture(
129         sub {
130             $has_pcre = $step->_evaluate_cc_run($conf, $test);
131         },
132         \$stdout,
133     );
134     ok($has_pcre, "_evaluate_cc_run returned true value as expected");
135     is($step->result(), q{yes, 4.0}, "Got expected PCRE version");
136     like($stdout, qr/\(yes, 4\.0\)/, "Got expected verbose output");
139 pass("Completed all tests in $0");
141 ################### DOCUMENTATION ###################
143 =head1 NAME
145   auto/pcre-01.t - test auto::pcre
147 =head1 SYNOPSIS
149     % prove t/steps/auto/pcre-01.t
151 =head1 DESCRIPTION
153 The files in this directory test functionality used by F<Configure.pl>.
155 The tests in this file test configuration step class auto::pcre.
157 =head1 AUTHOR
159 Alberto SimÃes.
161 =head1 SEE ALSO
163 config::auto::pcre, F<Configure.pl>.
165 =cut
167 # Local Variables:
168 #   mode: cperl
169 #   cperl-indent-level: 4
170 #   fill-column: 100
171 # End:
172 # vim: expandtab shiftwidth=4: