fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / pharness / 03-handle_long_options.t
blob0d4c76f2517b599fd5ae3adc1df98b16b11887af
1 #! perl
2 # Copyright (C) 2007, Parrot Foundation.
3 # $Id$
4 # 03-handle_long_options.t
6 use strict;
7 use warnings;
9 use lib qw( lib );
10 use Test::More;
11 eval {
12     use Parrot::Config qw( %PConfig );
14 plan( skip_all => 't/harness only runs once configuration has completed' )
15     if $@;
16 plan( tests => 11 );
17 use Carp;
18 use Parrot::Harness::Options qw( handle_long_options );
20 my (@argv, $longopts);
21 my %still_argv;
22 @argv = qw(
23     -wv
24     -O2
25     --gc-debug
26     t/postconfigure/*.t
27 ); # */
29 ($longopts, @argv) = handle_long_options(@argv);
30 ok($longopts->{gc_debug}, "Captured long option");
31 %still_argv = map {$_, 1} @argv;
32 ok($still_argv{'-wv'}, "Combined short options still present in \@ARGV");
33 ok($still_argv{'-O2'}, "Short options with values still present in \@ARGV");
34 ok($still_argv{'t/postconfigure/*.t'}, "Arguments still present in \@ARGV");
36 @argv = qw(
37     --archive
38     t/postconfigure/*.t
39 ); # */
41 ($longopts, @argv) = handle_long_options(@argv);
42 ok($longopts->{archive}, "Captured long option");
43 ok(! $longopts->{send_to_smolder}, "Smolder test not requested");
44 %still_argv = map {$_, 1} @argv;
45 ok($still_argv{'t/postconfigure/*.t'}, "Arguments still present in \@ARGV");
47 @argv = qw(
48     --archive
49     --send-to-smolder
50     t/postconfigure/*.t
51 ); # */
53 ($longopts, @argv) = handle_long_options(@argv);
54 ok($longopts->{archive}, "Captured long option");
55 ok($longopts->{send_to_smolder}, "Smolder test requested");
56 %still_argv = map {$_, 1} @argv;
57 ok($still_argv{'t/postconfigure/*.t'}, "Arguments still present in \@ARGV");
59 pass("Completed all tests in $0");
61 ################### DOCUMENTATION ###################
63 =head1 NAME
65 03-handle_long_options.t - test Parrot::Harness::Options
67 =head1 SYNOPSIS
69     % prove t/pharness/03-handle_long_options.t
71 =head1 DESCRIPTION
73 This file holds tests for Parrot::Harness::Options::handle_long_options().
75 =head1 AUTHOR
77 James E Keenan
79 =head1 SEE ALSO
81 Parrot::Harness::Options, F<t/harness>.
83 =cut
85 # Local Variables:
86 #   mode: cperl
87 #   cperl-indent-level: 4
88 #   fill-column: 100
89 # End:
90 # vim: expandtab shiftwidth=4: