fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / steps / auto / zlib-01.t
blob0d67b8c893c0ec18e05a6fbafd41615f5264f18c
1 #! perl
2 # Copyright (C) 2010, Parrot Foundation.
3 # $Id$
5 use strict;
6 use warnings;
7 use Test::More tests =>  24;
8 use Carp;
9 use lib qw( lib t/configure/testlib );
10 use_ok('config::auto::zlib');
11 use Parrot::Configure::Options qw( process_options );
12 use Parrot::Configure::Step::Test;
13 use Parrot::Configure::Test qw(
14     test_step_constructor_and_description
16 use IO::CaptureOutput qw( capture );
18 ########## --without-zlib ##########
20 my ($args, $step_list_ref) = process_options(
21     {
22         argv => [ q{--without-zlib} ],
23         mode => q{configure},
24     }
27 my $conf = Parrot::Configure::Step::Test->new;
28 $conf->include_config_results( $args );
30 my $pkg = q{auto::zlib};
32 $conf->add_steps($pkg);
34 my $serialized = $conf->pcfreeze();
36 $conf->options->set( %{$args} );
37 my $step = test_step_constructor_and_description($conf);
38 my $ret = $step->runstep($conf);
39 ok( $ret, "runstep() returned true value" );
40 is($conf->data->get('has_zlib'), 0,
41     "Got expected value for 'has_zlib'");
42 is($step->result(), q{no}, "Expected result was set");
44 $conf->replenish($serialized);
46 ########## _select_lib() ##########
48 ($args, $step_list_ref) = process_options( {
49     argv => [ ],
50     mode => q{configure},
51 } );
52 $conf->options->set( %{$args} );
53 $step = test_step_constructor_and_description($conf);
54 # Mock different OS/compiler combinations.
55 my ($osname, $cc, $initial_libs);
56 $initial_libs = $conf->data->get('libs');
57 $osname = 'mswin32';
58 $cc = 'gcc';
59 is($step->_select_lib( {
60     conf            => $conf,
61     osname          => $osname,
62     cc              => $cc,
63     win32_nongcc    => 'zlib.lib',
64     default         => '-lz',
65 } ),
66    '-lz',
67    "_select_lib() returned expected value");
69 $osname = 'mswin32';
70 $cc = 'cc';
71 is($step->_select_lib( {
72     conf            => $conf,
73     osname          => $osname,
74     cc              => $cc,
75     win32_nongcc    => 'zlib.lib',
76     default         => '-lz',
77 } ),
78    'zlib.lib',
79    "_select_lib() returned expected value");
81 $osname = 'foobar';
82 $cc = 'cc';
83 is($step->_select_lib( {
84     conf            => $conf,
85     osname          => $osname,
86     cc              => $cc,
87     win32_nongcc    => 'zlib.lib',
88     default         => '-lz',
89 } ),
90    '-lz',
91    "_select_lib() returned expected value");
93 $conf->replenish($serialized);
95 ########## --without-zlib; _evaluate_cc_run() ##########
97 ($args, $step_list_ref) = process_options( {
98     argv => [ q{--without-zlib} ],
99     mode => q{configure},
100 } );
101 $conf->options->set( %{$args} );
102 $step = test_step_constructor_and_description($conf);
103 my ($test, $has_zlib);
104 $test = qq{1.2.3\n};
105 $has_zlib = 0;
106 $conf->options->set(verbose => undef);
107 $has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib);
108 is($has_zlib, 1, "'has_zlib' set as expected");
109 is($step->result(), 'yes, 1.2.3', "Expected result was set");
110 # Prepare for next test
111 $step->set_result(undef);
113 $test = qq{foobar};
114 $has_zlib = 0;
115 $conf->options->set(verbose => undef);
116 $has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib);
117 is($has_zlib, 0, "'has_zlib' set as expected");
118 ok(! defined $step->result(), "Result is undefined, as expected");
121     my $stdout;
122     $test = qq{1.2.3\n};
123     $has_zlib = 0;
124     $conf->options->set(verbose => 1);
125     capture(
126         sub { $has_zlib =
127             $step->_evaluate_cc_run($conf, $test, $has_zlib); },
128         \$stdout,
129     );
130     is($has_zlib, 1, "'has_zlib' set as expected");
131     is($step->result(), 'yes, 1.2.3', "Expected result was set");
132     like($stdout, qr/\(yes\)/, "Got expected verbose output");
133     # Prepare for next test
134     $step->set_result(undef);
137 pass("Completed all tests in $0");
139 ################### DOCUMENTATION ###################
141 =head1 NAME
143 auto/zlib-01.t - test auto::zlib
145 =head1 SYNOPSIS
147     % prove t/steps/auto/zlib-01.t
149 =head1 DESCRIPTION
151 The files in this directory test functionality used by F<Configure.pl>.
153 The tests in this file test auto::zlib.
155 =head1 HISTORY
157 Mostly taken from F<t/steps/auto/gdbm-01.t>.
159 =head1 AUTHOR
161 Francois Perrad
163 =head1 SEE ALSO
165 config::auto::zlib, F<Configure.pl>.
167 =cut
169 # Local Variables:
170 #   mode: cperl
171 #   cperl-indent-level: 4
172 #   fill-column: 100
173 # End:
174 # vim: expandtab shiftwidth=4: