fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / steps / auto / env-01.t
blobc2846767ce8d368f5d41c40b7a422f2d90264548
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # auto/env-01.t
6 use strict;
7 use warnings;
8 use Test::More tests =>  24;
9 use Carp;
10 use lib qw( lib t/configure/testlib );
11 use_ok('config::auto::env');
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 ########### regular ###########
21 my ($args, $step_list_ref) = process_options( {
22     argv            => [],
23     mode            => q{configure},
24 } );
26 my $conf = Parrot::Configure::Step::Test->new;
27 $conf->include_config_results( $args );
29 my $pkg = q{auto::env};
31 $conf->add_steps($pkg);
33 my $serialized = $conf->pcfreeze();
35 $conf->options->set(%{$args});
36 my $step = test_step_constructor_and_description($conf);
37 ok($step->runstep($conf), "runstep() returned true value");
39 $conf->replenish($serialized);
41 ########### _evaluate_env() ###########
43 ($args, $step_list_ref) = process_options( {
44     argv            => [],
45     mode            => q{configure},
46 } );
47 $conf->options->set(%{$args});
48 $step = test_step_constructor_and_description($conf);
49 my ($setenv, $unsetenv);
50 $setenv = 1;
51 $unsetenv = 1;
52 $step->_evaluate_env($conf, $setenv, $unsetenv);
53 is($step->result(), q{both}, "Got expected result");
54 $setenv = 1;
55 $unsetenv = 0;
56 $step->_evaluate_env($conf, $setenv, $unsetenv);
57 is($step->result(), q{setenv}, "Got expected result");
58 $setenv = 0;
59 $unsetenv = 1;
60 $step->_evaluate_env($conf, $setenv, $unsetenv);
61 is($step->result(), q{unsetenv}, "Got expected result");
62 $setenv = 0;
63 $unsetenv = 0;
64 $step->_evaluate_env($conf, $setenv, $unsetenv);
65 is($step->result(), q{no}, "Got expected result");
67 $conf->replenish($serialized);
69 ########### --verbose; _evaluate_env() ###########
71 ($args, $step_list_ref) = process_options( {
72     argv            => [ q{--verbose} ],
73     mode            => q{configure},
74 } );
75 $conf->options->set(%{$args});
76 $step = test_step_constructor_and_description($conf);
78     my $stdout;
79     $setenv = 1;
80     $unsetenv = 1;
81     capture(
82         sub { $step->_evaluate_env($conf, $setenv, $unsetenv) },
83         \$stdout
84     );
85     like($stdout, qr/both/, "Got expected verbose output");
86     is($step->result(), q{both}, "Got expected result");
89     my $stdout;
90     $setenv = 1;
91     $unsetenv = 0;
92     capture(
93         sub { $step->_evaluate_env($conf, $setenv, $unsetenv) },
94         \$stdout
95     );
96     like($stdout, qr/setenv/, "Got expected verbose output");
97     is($step->result(), q{setenv}, "Got expected result");
100     my $stdout;
101     $setenv = 0;
102     $unsetenv = 1;
103     capture(
104         sub { $step->_evaluate_env($conf, $setenv, $unsetenv) },
105         \$stdout
106     );
107     like($stdout, qr/unsetenv/, "Got expected verbose output");
108     is($step->result(), q{unsetenv}, "Got expected result");
111     my $stdout;
112     $setenv = 0;
113     $unsetenv = 0;
114     capture(
115         sub { $step->_evaluate_env($conf, $setenv, $unsetenv) },
116         \$stdout
117     );
118     like($stdout, qr/no/, "Got expected verbose output");
119     is($step->result(), q{no}, "Got expected result");
122 pass("Completed all tests in $0");
124 ################### DOCUMENTATION ###################
126 =head1 NAME
128 auto/env-01.t - test auto::env
130 =head1 SYNOPSIS
132     % prove t/steps/auto/env-01.t
134 =head1 DESCRIPTION
136 The files in this directory test functionality used by F<Configure.pl>.
138 The tests in this file test auto::env.
140 =head1 AUTHOR
142 James E Keenan
144 =head1 SEE ALSO
146 config::auto::env, F<Configure.pl>.
148 =cut
150 # Local Variables:
151 #   mode: cperl
152 #   cperl-indent-level: 4
153 #   fill-column: 100
154 # End:
155 # vim: expandtab shiftwidth=4: