fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / steps / inter / progs-02.t
blobb96bacc09344d811f9bcc53bb13ed386850fed66
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # inter/progs-02.t
6 use strict;
7 use warnings;
9 use Test::More tests =>  9;
10 use Carp;
11 use lib qw( lib t/configure/testlib );
12 use_ok('config::inter::progs');
13 use Parrot::Configure::Options qw( process_options );
14 use Parrot::Configure::Step::Test;
15 use Parrot::Configure::Test qw(
16     test_step_constructor_and_description
18 use Tie::Filehandle::Preempt::Stdin;
19 use IO::CaptureOutput qw| capture |;
21 =for hints_for_testing Testing and refactoring of inter::progs should
22 entail understanding of issues discussed in
23 https://trac.parrot.org/parrot/ticket/854
25 =cut
27 ########## ask; debugging 0  ##########
29 my ($args, $step_list_ref) = process_options(
30     {
31         argv => [ q{--ask}, q{--debugging=0} ],
32         mode => q{configure},
33     }
36 my $conf = Parrot::Configure::Step::Test->new;
37 $conf->include_config_results( $args );
39 my $pkg = q{inter::progs};
41 $conf->add_steps($pkg);
43 $conf->options->set( %{$args} );
44 my $step = test_step_constructor_and_description($conf);
46 my @prompts;
47 my $object;
48 my ($stdout, $debug, $debug_validity);
50 foreach my $p (
51     qw|
52         cc
53         link
54         ld
55         ccflags
56         linkflags
57         ldflags
58         libs
59         cxx
60     |
61     )
63     push @prompts, $conf->data->get($p);
65 push @prompts, q{y};
67 $object = tie *STDIN, 'Tie::Filehandle::Preempt::Stdin', @prompts;
68 can_ok( 'Tie::Filehandle::Preempt::Stdin', ('READLINE') );
69 isa_ok( $object, 'Tie::Filehandle::Preempt::Stdin' );
71 capture( sub {
72     my $ask = inter::progs::_prepare_for_interactivity($conf);
73     my $cc;
74     ($conf, $cc) = inter::progs::_get_programs($conf, $ask);
75     $debug = inter::progs::_get_debug($conf, $ask);
76     $debug_validity = inter::progs::_is_debug_setting_valid($debug);
77 }, \$stdout);
78 ok( defined $debug_validity, "'debug_validity' set as expected" );
80 capture( sub {
81     $conf = inter::progs::_set_debug_and_warn($conf, $debug);
82 }, \$stdout);
83 ok( defined $conf, "Components of runstep() tested okay" );
85 $object = undef;
86 untie *STDIN;
88 pass("Completed all tests in $0");
90 ################### DOCUMENTATION ###################
92 =head1 NAME
94 inter/progs-02.t - test inter::progs
96 =head1 SYNOPSIS
98     % prove t/steps/inter/progs-02.t
100 =head1 DESCRIPTION
102 The files in this directory test functionality used by F<Configure.pl>.
104 The tests in this file test inter::progs.
106 =head1 AUTHOR
108 James E Keenan
110 =head1 SEE ALSO
112 config::inter::progs, F<Configure.pl>.
114 =cut
116 # Local Variables:
117 #   mode: cperl
118 #   cperl-indent-level: 4
119 #   fill-column: 100
120 # End:
121 # vim: expandtab shiftwidth=4: