[cage] Update release manager guide about committing to trunk near a release, based...
[parrot.git] / t / steps / inter / shlibs-01.t
blob1101e9788409eb89ce158d52b91006ac0ec9daf0
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # inter/shlibs-01.t
6 use strict;
7 use warnings;
8 use Test::More tests => 21;
9 use Carp;
10 use lib qw( lib t/configure/testlib );
11 use_ok('config::init::defaults');
12 use_ok('config::inter::shlibs');
13 use Parrot::Configure;
14 use Parrot::Configure::Options qw( process_options );
15 use Parrot::Configure::Test qw(
16     test_step_thru_runstep
17     test_step_constructor_and_description
19 use Tie::Filehandle::Preempt::Stdin;
21 ########## ask; mock response to prompt  ##########
23 my ($args, $step_list_ref) = process_options(
24     {
25         argv => [q{--ask}],
26         mode => q{configure},
27     }
30 my $conf = Parrot::Configure->new;
32 test_step_thru_runstep( $conf, q{init::defaults}, $args );
34 my $pkg = q{inter::shlibs};
35 $conf->add_steps($pkg);
37 my $serialized = $conf->pcfreeze();
39 $conf->options->set( %{$args} );
40 my $step = test_step_constructor_and_description($conf);
42 my ( @prompts, $prompt, $object );
43 $prompt = q{foobar};
44 push @prompts, $prompt;
46 $object = tie *STDIN, 'Tie::Filehandle::Preempt::Stdin', @prompts;
47 can_ok( 'Tie::Filehandle::Preempt::Stdin', ('READLINE') );
48 isa_ok( $object, 'Tie::Filehandle::Preempt::Stdin' );
51     open STDOUT, '>', "/dev/null" or croak "Unable to open to myout";
52     my $ret = $step->runstep($conf);
53     close STDOUT or croak "Unable to close after myout";
54     ok( $ret, "runstep() returned true value" );
55     is( $step->result(), $prompt, "Expected result was set" );
58 undef $object;
59 untie *STDIN;
60 @prompts = ();
62 $conf->replenish($serialized);
64 ########## ask; empty response to prompt  ##########
66 ($args, $step_list_ref) = process_options(
67     {
68         argv => [q{--ask}],
69         mode => q{configure},
70     }
72 $conf->options->set( %{$args} );
73 $step = test_step_constructor_and_description($conf);
74 $prompt = q{ };
75 push @prompts, $prompt;
77 $object = tie *STDIN, 'Tie::Filehandle::Preempt::Stdin', @prompts;
78 can_ok( 'Tie::Filehandle::Preempt::Stdin', ('READLINE') );
79 isa_ok( $object, 'Tie::Filehandle::Preempt::Stdin' );
82     open STDOUT, '>', "/dev/null" or croak "Unable to open to myout";
83     my $ret = $step->runstep($conf);
84     close STDOUT or croak "Unable to close after myout";
85     ok( $ret, "runstep() returned true value" );
86     is( $step->result(), q{done}, "Expected result was set" );
89 undef $object;
90 untie *STDIN;
91 @prompts = ();
93 pass("Completed all tests in $0");
95 ################### DOCUMENTATION ###################
97 =head1 NAME
99 inter/shlibs-01.t - test inter::shlibs
101 =head1 SYNOPSIS
103     % prove t/steps/inter/shlibs-01.t
105 =head1 DESCRIPTION
107 The files in this directory test functionality used by F<Configure.pl>.
109 The tests in this file test inter::shlibs.
111 =head1 AUTHOR
113 James E Keenan
115 =head1 SEE ALSO
117 config::inter::shlibs, F<Configure.pl>.
119 =cut
121 # Local Variables:
122 #   mode: cperl
123 #   cperl-indent-level: 4
124 #   fill-column: 100
125 # End:
126 # vim: expandtab shiftwidth=4: