Patch attached supplies slight refactoring of configuration step class
auto::alignptrs and 5 test files.  Will apply in 2-3 days if there is no
objection.  Thank you very much.

kid51
Index: MANIFEST
===================================================================
--- MANIFEST    (revision 22667)
+++ MANIFEST    (working copy)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Nov  1 01:49:58 2007 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sat Nov  3 03:18:13 2007 UT
 #
 # See tools/dev/install_files.pl for documentation on the
 # format of this file.
@@ -3059,6 +3059,10 @@
 t/configure/122-auto_ops.t                                  []
 t/configure/123-auto_pmc.t                                  []
 t/configure/124-auto_alignptrs-01.t                         []
+t/configure/124-auto_alignptrs-02.t                         []
+t/configure/124-auto_alignptrs-03.t                         []
+t/configure/124-auto_alignptrs-04.t                         []
+t/configure/124-auto_alignptrs-05.t                         []
 t/configure/125-auto_headers-01.t                           []
 t/configure/126-auto_sizes-01.t                             []
 t/configure/127-auto_byteorder-01.t                         []
Index: t/configure/124-auto_alignptrs-02.t
===================================================================
--- t/configure/124-auto_alignptrs-02.t (revision 0)
+++ t/configure/124-auto_alignptrs-02.t (revision 0)
@@ -0,0 +1,82 @@
+#! perl
+# Copyright (C) 2007, The Perl Foundation.
+# $Id$
+# 124-auto_alignptrs-02.t
+
+use strict;
+use warnings;
+use Test::More tests => 12;
+use Carp;
+use lib qw( lib t/configure/testlib );
+use_ok('config::init::defaults');
+use_ok('config::auto::alignptrs');
+use Parrot::Configure;
+use Parrot::Configure::Options qw( process_options );
+use Parrot::Configure::Test qw( test_step_thru_runstep);
+
+my $args = process_options(
+    {
+        argv => [ ],
+        mode => q{configure},
+    }
+);
+
+my $conf = Parrot::Configure->new;
+
+test_step_thru_runstep( $conf, q{init::defaults}, $args );
+
+my $pkg = q{auto::alignptrs};
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+
+my ( $task, $step_name, @step_params, $step);
+$task        = $conf->steps->[1];
+$step_name   = $task->step;
[EMAIL PROTECTED] = @{ $task->params };
+
+$step = $step_name->new();
+ok( defined $step, "$step_name constructor returned defined value" );
+isa_ok( $step, $step_name );
+ok( $step->description(), "$step_name has description" );
+
+my $align = 1;
+$conf->data->set('ptr_alignment' => $align);
+my $ret = $step->runstep($conf);
+ok( $ret, "$step_name runstep() returned true value" );
+is($step->result(), qq{configured:  $align byte}, "Expected result was set");
+
+pass("Completed all tests in $0");
+
+################### DOCUMENTATION ###################
+
+=head1 NAME
+
+124-auto_alignptrs-02.t - test config::auto::alignptrs
+
+=head1 SYNOPSIS
+
+    % prove t/configure/124-auto_alignptrs-02.t
+
+=head1 DESCRIPTION
+
+The files in this directory test functionality used by F<Configure.pl>.
+
+The tests in this file test subroutines exported by config::auto::alignptrs.
+
+=head1 AUTHOR
+
+James E Keenan
+
+=head1 SEE ALSO
+
+config::auto::alignptrs, F<Configure.pl>.
+
+=cut
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Property changes on: t/configure/124-auto_alignptrs-02.t
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Index: t/configure/124-auto_alignptrs-03.t
===================================================================
--- t/configure/124-auto_alignptrs-03.t (revision 0)
+++ t/configure/124-auto_alignptrs-03.t (revision 0)
@@ -0,0 +1,82 @@
+#! perl
+# Copyright (C) 2007, The Perl Foundation.
+# $Id$
+# 124-auto_alignptrs-03.t
+
+use strict;
+use warnings;
+use Test::More tests => 12;
+use Carp;
+use lib qw( lib t/configure/testlib );
+use_ok('config::init::defaults');
+use_ok('config::auto::alignptrs');
+use Parrot::Configure;
+use Parrot::Configure::Options qw( process_options );
+use Parrot::Configure::Test qw( test_step_thru_runstep);
+
+my $args = process_options(
+    {
+        argv => [ ],
+        mode => q{configure},
+    }
+);
+
+my $conf = Parrot::Configure->new;
+
+test_step_thru_runstep( $conf, q{init::defaults}, $args );
+
+my $pkg = q{auto::alignptrs};
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+
+my ( $task, $step_name, @step_params, $step);
+$task        = $conf->steps->[1];
+$step_name   = $task->step;
[EMAIL PROTECTED] = @{ $task->params };
+
+$step = $step_name->new();
+ok( defined $step, "$step_name constructor returned defined value" );
+isa_ok( $step, $step_name );
+ok( $step->description(), "$step_name has description" );
+
+my $align = 2;
+$conf->data->set('ptr_alignment' => $align);
+my $ret = $step->runstep($conf);
+ok( $ret, "$step_name runstep() returned true value" );
+is($step->result(), qq{configured:  $align bytes}, "Expected result was set");
+
+pass("Completed all tests in $0");
+
+################### DOCUMENTATION ###################
+
+=head1 NAME
+
+124-auto_alignptrs-03.t - test config::auto::alignptrs
+
+=head1 SYNOPSIS
+
+    % prove t/configure/124-auto_alignptrs-03.t
+
+=head1 DESCRIPTION
+
+The files in this directory test functionality used by F<Configure.pl>.
+
+The tests in this file test subroutines exported by config::auto::alignptrs.
+
+=head1 AUTHOR
+
+James E Keenan
+
+=head1 SEE ALSO
+
+config::auto::alignptrs, F<Configure.pl>.
+
+=cut
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Property changes on: t/configure/124-auto_alignptrs-03.t
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Index: t/configure/124-auto_alignptrs-04.t
===================================================================
--- t/configure/124-auto_alignptrs-04.t (revision 0)
+++ t/configure/124-auto_alignptrs-04.t (revision 0)
@@ -0,0 +1,92 @@
+#! perl
+# Copyright (C) 2007, The Perl Foundation.
+# $Id$
+# 124-auto_alignptrs-04.t
+
+use strict;
+use warnings;
+use Test::More tests => 13;
+use Carp;
+use lib qw( lib t/configure/testlib );
+use_ok('config::init::defaults');
+use_ok('config::auto::alignptrs');
+use Parrot::Configure;
+use Parrot::Configure::Options qw( process_options );
+use Parrot::Configure::Test qw( test_step_thru_runstep);
+
+my $args = process_options(
+    {
+        argv => [ ],
+        mode => q{configure},
+    }
+);
+
+my $conf = Parrot::Configure->new;
+
+test_step_thru_runstep( $conf, q{init::defaults}, $args );
+
+my $pkg = q{auto::alignptrs};
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+
+my ( $task, $step_name, @step_params, $step);
+$task        = $conf->steps->[1];
+$step_name   = $task->step;
[EMAIL PROTECTED] = @{ $task->params };
+
+$step = $step_name->new();
+ok( defined $step, "$step_name constructor returned defined value" );
+isa_ok( $step, $step_name );
+ok( $step->description(), "$step_name has description" );
+
+{
+    use Config;
+    local $^O = q{hpux};
+    my $ret = $step->runstep($conf);
+    ok( $ret, "$step_name runstep() returned true value" );
+    if ( $Config{ccflags} !~ /DD64/ ) {
+        is($conf->data->get('ptr_alignment'), 4,
+            "Got expected pointer alignment for HP Unix");
+        is($step->result(), qq{for hpux:  4 bytes},
+            "Expected result was set");
+    } else {
+        pass("Cannot mock %Config");
+        pass("Cannot mock %Config");
+    }
+}
+
+pass("Completed all tests in $0");
+
+################### DOCUMENTATION ###################
+
+=head1 NAME
+
+124-auto_alignptrs-04.t - test config::auto::alignptrs
+
+=head1 SYNOPSIS
+
+    % prove t/configure/124-auto_alignptrs-04.t
+
+=head1 DESCRIPTION
+
+The files in this directory test functionality used by F<Configure.pl>.
+
+The tests in this file test subroutines exported by config::auto::alignptrs.
+
+=head1 AUTHOR
+
+James E Keenan
+
+=head1 SEE ALSO
+
+config::auto::alignptrs, F<Configure.pl>.
+
+=cut
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Property changes on: t/configure/124-auto_alignptrs-04.t
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Index: t/configure/124-auto_alignptrs-05.t
===================================================================
--- t/configure/124-auto_alignptrs-05.t (revision 0)
+++ t/configure/124-auto_alignptrs-05.t (revision 0)
@@ -0,0 +1,90 @@
+#! perl
+# Copyright (C) 2007, The Perl Foundation.
+# $Id$
+# 124-auto_alignptrs-05.t
+
+use strict;
+use warnings;
+use Test::More qw(no_plan); # tests => 13;
+use Carp;
+use lib qw( lib t/configure/testlib );
+use_ok('config::init::defaults');
+use_ok('config::auto::alignptrs');
+use Parrot::Configure;
+use Parrot::Configure::Options qw( process_options );
+use Parrot::Configure::Test qw( test_step_thru_runstep);
+
+my $args = process_options(
+    {
+        argv => [ ],
+        mode => q{configure},
+    }
+);
+
+my $conf = Parrot::Configure->new;
+
+test_step_thru_runstep( $conf, q{init::defaults}, $args );
+
+my $pkg = q{auto::alignptrs};
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+
+my ( $task, $step_name, @step_params, $step);
+$task        = $conf->steps->[1];
+$step_name   = $task->step;
[EMAIL PROTECTED] = @{ $task->params };
+
+$step = $step_name->new();
+ok( defined $step, "$step_name constructor returned defined value" );
+isa_ok( $step, $step_name );
+ok( $step->description(), "$step_name has description" );
+
+{
+    $conf->data->set('ptr_alignment' => undef);
+    if ($^O eq q{hpux}) { $^O = q{linux} }
+    my $ret;
+    eval { $ret = $step->runstep($conf); };
+    if ($@) {
+        like($@, qr/Can't determine alignment/,
+            "Got expected error message when runstep() failed");
+    } else {
+        like($step->result(), qr/bytes?/,
+            "Expected result was set");
+    }
+}
+
+pass("Completed all tests in $0");
+
+################### DOCUMENTATION ###################
+
+=head1 NAME
+
+124-auto_alignptrs-05.t - test config::auto::alignptrs
+
+=head1 SYNOPSIS
+
+    % prove t/configure/124-auto_alignptrs-05.t
+
+=head1 DESCRIPTION
+
+The files in this directory test functionality used by F<Configure.pl>.
+
+The tests in this file test subroutines exported by config::auto::alignptrs.
+
+=head1 AUTHOR
+
+James E Keenan
+
+=head1 SEE ALSO
+
+config::auto::alignptrs, F<Configure.pl>.
+
+=cut
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Property changes on: t/configure/124-auto_alignptrs-05.t
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Index: config/auto/alignptrs.pm
===================================================================
--- config/auto/alignptrs.pm    (revision 22667)
+++ config/auto/alignptrs.pm    (working copy)
@@ -39,18 +39,18 @@
         return 1;
     }
 
-    $self->set_result('');
+    my $result_str = '';
     my $align;
     if ( defined( $conf->data->get('ptr_alignment') ) ) {
         $align = $conf->data->get('ptr_alignment');
-        $self->set_result("configured: ");
+        $result_str .= "configured: ";
     }
     elsif ( $^O eq 'hpux' && $Config{ccflags} !~ /DD64/ ) {
 
         # HP-UX 10.20/32 hangs in this test.
         $align = 4;
         $conf->data->set( ptr_alignment => $align );
-        $self->set_result("for hpux: ");
+        $result_str .= "for hpux: ";
     }
     else {
 
@@ -69,8 +69,9 @@
         $conf->data->set( ptr_alignment => $align );
     }
 
-    $self->set_result( $self->result . " $align byte" );
-    $self->set_result( $self->result . 's' ) unless $align == 1;
+    $result_str .= " $align byte";
+    $result_str .= "s" unless $align == 1;
+    $self->set_result($result_str);
 
     return 1;
 }

Reply via email to