fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / steps / inter / progs-03.t
blobf6669e1613fd41512707b344ddf3720d8cc869f7
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # inter/progs-03.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 ##########
29 my ($args, $step_list_ref) = process_options(
30     {
31         argv => [q{--ask}],
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{n};
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;
89 pass("Completed all tests in $0");
91 ################### DOCUMENTATION ###################
93 =head1 NAME
95 inter/progs-03.t - test inter::progs
97 =head1 SYNOPSIS
99     % prove t/steps/inter/progs-03.t
101 =head1 DESCRIPTION
103 The files in this directory test functionality used by F<Configure.pl>.
105 The tests in this file test inter::progs.
107 =head1 AUTHOR
109 James E Keenan
111 =head1 SEE ALSO
113 config::inter::progs, F<Configure.pl>.
115 =cut
117 # Local Variables:
118 #   mode: cperl
119 #   cperl-indent-level: 4
120 #   fill-column: 100
121 # End:
122 # vim: expandtab shiftwidth=4: