[svn:parrot] r42417 - in branches/platform_determine_earlier: config/auto config/gen t/steps/auto t/steps/gen
jkeenan at svn.parrot.org
jkeenan at svn.parrot.org
Wed Nov 11 02:40:50 UTC 2009
Author: jkeenan
Date: Wed Nov 11 02:40:50 2009
New Revision: 42417
URL: https://trac.parrot.org/parrot/changeset/42417
Log:
Create a Parrot::Configure attribute 'platform' in auto::arch; use it in
gen::platform. Adjust two configuration step tests accordingly. Still need
to adapt tests for _get_platform() in t/steps/auto/arch-01.t.
Modified:
branches/platform_determine_earlier/config/auto/arch.pm
branches/platform_determine_earlier/config/gen/platform.pm
branches/platform_determine_earlier/t/steps/auto/arch-01.t
branches/platform_determine_earlier/t/steps/gen/platform-01.t
Modified: branches/platform_determine_earlier/config/auto/arch.pm
==============================================================================
--- branches/platform_determine_earlier/config/auto/arch.pm Wed Nov 11 02:09:36 2009 (r42416)
+++ branches/platform_determine_earlier/config/auto/arch.pm Wed Nov 11 02:40:50 2009 (r42417)
@@ -46,7 +46,7 @@
if ($verbose) {
print "determining operating system and cpu architecture\n";
- print "archname: <$archname>\n";
+ print "archname: $archname\n";
}
if ( !defined $osname ) {
@@ -92,13 +92,43 @@
$cpuarch =~ s/i[456]86/i386/i;
$cpuarch =~ s/x86_64/amd64/i;
- print "osname: $osname\ncpuarch: $cpuarch\n" if $verbose;
-
$conf->data->set(
cpuarch => $cpuarch,
osname => $osname
);
+ $conf->data->set( 'platform' => $self->_get_platform( $conf, $verbose ) );
+
+ _report_verbose( $conf, $verbose );
+
+ return 1;
+}
+
+sub _get_platform {
+ my $self = shift;
+ my ($conf, $verbose) = @_;
+ my $platform = lc ( $conf->data->get('osname') );
+
+ $platform = "win32" if $platform =~ /^msys/;
+ $platform = "win32" if $platform =~ /^mingw/;
+ $platform =~ s/^ms//;
+
+ if ( ( split m/-/, $conf->data->get('archname'), 2 )[0] eq 'ia64' ) {
+ $platform = 'ia64';
+ }
+
+ $platform = 'generic' unless -d "config/gen/platform/$platform";
+
+ return $platform;
+}
+
+sub _report_verbose {
+ my ($conf, $verbose) = @_;
+ if ( $verbose ) {
+ print "osname: ", $conf->data->get('osname'), "\n";
+ print "cpuarch: ", $conf->data->get('cpuarch'), "\n";
+ print "platform: ", $conf->data->get('platform'), "\n";
+ }
return 1;
}
Modified: branches/platform_determine_earlier/config/gen/platform.pm
==============================================================================
--- branches/platform_determine_earlier/config/gen/platform.pm Wed Nov 11 02:09:36 2009 (r42416)
+++ branches/platform_determine_earlier/config/gen/platform.pm Wed Nov 11 02:40:50 2009 (r42417)
@@ -41,46 +41,26 @@
my ( $self, $conf ) = @_;
my $verbose = $conf->options->get('verbose');
- my $platform = $self->_get_platform( $conf, $verbose );
my $generated = $self->_get_generated($conf, $verbose);
# headers are merged into platform.h
- $self->_set_headers($conf, $verbose, $platform, $generated);
+ $self->_set_headers($conf, $verbose, $generated);
# implementation files are merged into platform.c
- $self->_set_implementations($conf, $verbose, $platform, $generated);
+ $self->_set_implementations($conf, $verbose, $generated);
- $self->_handle_asm($conf, $platform);
+ $self->_handle_asm($conf);
# interface is the same for all platforms
copy_if_diff( $self->{platform_interface},
"include/parrot/platform_interface.h" );
- $self->_set_limits($conf, $verbose, $platform);
+ $self->_set_limits($conf, $verbose);
return 1;
}
-sub _get_platform {
- my $self = shift;
- my ($conf, $verbose) = @_;
- my $platform = lc ( $conf->data->get_p5('OSNAME') );
-
- $platform = "win32" if $platform =~ /^msys/;
- $platform = "win32" if $platform =~ /^mingw/;
- $platform =~ s/^ms//;
-
- if ( ( split m/-/, $conf->data->get_p5('archname'), 2 )[0] eq 'ia64' ) {
- $platform = 'ia64';
- }
-
- $platform = 'generic' unless -d "config/gen/platform/$platform";
-
- print " platform='$platform' " if $verbose;
- return $platform;
-}
-
sub _get_generated {
my $self = shift;
my ($conf, $verbose) = @_;
@@ -92,7 +72,8 @@
sub _set_headers {
my $self = shift;
- my ($conf, $verbose, $platform, $generated) = @_;
+ my ($conf, $verbose, $generated) = @_;
+ my $platform = $conf->data->get('platform');
my @headers = qw/
io.h
math.h
@@ -197,7 +178,8 @@
sub _set_limits {
my $self = shift;
- my ($conf, $verbose, $platform) = @_;
+ my ($conf, $verbose) = @_;
+ my $platform = $conf->data->get('platform');
my $limits = "config/gen/platform/generic/platform_limits.h";
if ( -e "config/gen/platform/$platform/platform_limits.h" ) {
@@ -210,7 +192,8 @@
sub _set_implementations {
my $self = shift;
- my ($conf, $verbose, $platform, $generated) = @_;
+ my ($conf, $verbose, $generated) = @_;
+ my $platform = $conf->data->get('platform');
my @impls = qw/
time.c
env.c
@@ -336,8 +319,8 @@
}
sub _handle_asm {
- my $self = shift;
- my ($conf, $platform) = @_;
+ my ($self, $conf) = @_;
+ my $platform = $conf->data->get('platform');
if ( $conf->data->get('platform_asm') ) {
my $asm_file = "config/gen/platform/$platform/asm.s";
if ( -e $asm_file ) {
Modified: branches/platform_determine_earlier/t/steps/auto/arch-01.t
==============================================================================
--- branches/platform_determine_earlier/t/steps/auto/arch-01.t Wed Nov 11 02:09:36 2009 (r42416)
+++ branches/platform_determine_earlier/t/steps/auto/arch-01.t Wed Nov 11 02:40:50 2009 (r42417)
@@ -267,6 +267,47 @@
is($conf->data->get('osname'), q{cygwin},
"'osname' was set as expected");
+########### _get_platform() ##########
+#
+#$conf->data->set_p5( OSNAME => 'msys' );
+#is( $step->_get_platform( $conf, $verbose ), q{win32},
+# "Got expected platform for msys");
+#
+#$conf->data->set_p5( OSNAME => 'mingw' );
+#is( $step->_get_platform( $conf, $verbose ), q{win32},
+# "Got expected platform for mingw");
+#
+#$conf->data->set_p5( OSNAME => 'MSWin32' );
+#is( $step->_get_platform( $conf, $verbose ), q{win32},
+# "Got expected platform for MSWin32");
+#
+## re-set to original values
+#$conf->data->set_p5( OSNAME => $platform_orig );
+#$conf->data->set_p5( archname => $archname_orig );
+#
+#$conf->data->set_p5( archname => 'ia64-bar' );
+#is( $step->_get_platform( $conf, $verbose ), q{ia64},
+# "Got expected platform for ia64");
+#
+#$conf->data->set_p5( archname => 'foo-bar' );
+#$conf->data->set_p5( OSNAME => 'foo' );
+#{
+# $verbose = 1;
+# my ($stdout, $stderr, $rv);
+# my $expected = q{generic};
+# capture(
+# sub { $rv = $step->_get_platform( $conf, $verbose ) },
+# \$stdout,
+# \$stderr,
+# );
+# is( $rv, $expected, "Got expected platform for foo");
+# like( $stdout, qr/platform='$expected'/, "Got expected verbose output");
+#}
+#
+## re-set to original values
+#$conf->data->set_p5( archname => $archname_orig );
+#$conf->data->set_p5( OSNAME => $platform_orig );
+
pass("Completed all tests in $0");
sub _capture { $errstr = $_[0]; }
Modified: branches/platform_determine_earlier/t/steps/gen/platform-01.t
==============================================================================
--- branches/platform_determine_earlier/t/steps/gen/platform-01.t Wed Nov 11 02:09:36 2009 (r42416)
+++ branches/platform_determine_earlier/t/steps/gen/platform-01.t Wed Nov 11 02:40:50 2009 (r42417)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 19;
+use Test::More tests => 13;
use Carp;
use Cwd;
use File::Copy;
@@ -41,52 +41,11 @@
ok(-f $step->{platform_interface},
"Located required platform interface header");
-my $platform_orig = $conf->data->get_p5('OSNAME');
-my $archname_orig = $conf->data->get_p5('archname');
+my $platform_orig = $conf->data->get('osname');
+my $archname_orig = $conf->data->get('archname');
$conf->data->set_p5( archname => 'foo-bar' );
my $verbose = 0;
-########## _get_platform() ##########
-
-$conf->data->set_p5( OSNAME => 'msys' );
-is( $step->_get_platform( $conf, $verbose ), q{win32},
- "Got expected platform for msys");
-
-$conf->data->set_p5( OSNAME => 'mingw' );
-is( $step->_get_platform( $conf, $verbose ), q{win32},
- "Got expected platform for mingw");
-
-$conf->data->set_p5( OSNAME => 'MSWin32' );
-is( $step->_get_platform( $conf, $verbose ), q{win32},
- "Got expected platform for MSWin32");
-
-# re-set to original values
-$conf->data->set_p5( OSNAME => $platform_orig );
-$conf->data->set_p5( archname => $archname_orig );
-
-$conf->data->set_p5( archname => 'ia64-bar' );
-is( $step->_get_platform( $conf, $verbose ), q{ia64},
- "Got expected platform for ia64");
-
-$conf->data->set_p5( archname => 'foo-bar' );
-$conf->data->set_p5( OSNAME => 'foo' );
-{
- $verbose = 1;
- my ($stdout, $stderr, $rv);
- my $expected = q{generic};
- capture(
- sub { $rv = $step->_get_platform( $conf, $verbose ) },
- \$stdout,
- \$stderr,
- );
- is( $rv, $expected, "Got expected platform for foo");
- like( $stdout, qr/platform='$expected'/, "Got expected verbose output");
-}
-
-# re-set to original values
-$conf->data->set_p5( archname => $archname_orig );
-$conf->data->set_p5( OSNAME => $platform_orig );
-
########## _get_generated() ##########
my $TEMP_generated_orig = $conf->data->get('TEMP_generated');
@@ -120,12 +79,13 @@
chdir $tdir or croak "Unable to change to temporary directory";
$conf->data->set( platform_asm => 1 );
my $platform = 'aix';
+ $conf->data->set( platform => $platform );
mkpath( 'src', { mode => 0755 } ) or croak "Unable to make testing directory";
my $asmfile = File::Spec->catfile( 'src', 'platform_asm.s' );
open my $FH, '>', $asmfile or croak "Unable to open handle for writing";
print $FH "Hello asm\n";
close $FH or croak "Unable to close handle after writing";
- $step->_handle_asm($conf, $platform);
+ $step->_handle_asm($conf);
my $text = _slurp( $asmfile );
like($text, qr/Hello asm/s, "File unchanged, as expected");
@@ -133,14 +93,17 @@
}
# re-set to original values
$conf->data->set( platform_asm => $platform_asm_orig );
+$conf->data->set( platform => $platform_orig );
{
my $tdir = tempdir( CLEANUP => 1 );
chdir $tdir or croak "Unable to change to temporary directory";
$conf->data->set( platform_asm => 1 );
my $platform = 'aix';
+ $conf->data->set( platform => $platform );
- mkpath( 'src', { mode => 0755 } ) or croak "Unable to make testing directory";
+ mkpath( 'src', { mode => 0755 } )
+ or croak "Unable to make testing directory";
my $asmfile = File::Spec->catfile( 'src', 'platform_asm.s' );
open my $FH, '>', $asmfile or croak "Unable to open handle for writing";
@@ -148,14 +111,15 @@
close $FH or croak "Unable to close handle after writing";
my $path = File::Spec->catdir( 'config', 'gen', 'platform', $platform );
- mkpath( $path, { mode => 0755 } ) or croak "Unable to make testing directory";
+ mkpath( $path, { mode => 0755 } )
+ or croak "Unable to make testing directory";
my $configfile = File::Spec->catfile( $path, 'asm.s' );
open my $FH2, '>', $configfile or croak "Unable to open handle for writing";
print $FH2 "Goodbye world\n";
close $FH2 or croak "Unable to close handle after writing";
- $step->_handle_asm($conf, $platform);
+ $step->_handle_asm($conf);
my $text = _slurp( $asmfile );
like($text, qr/Goodbye world/s, "File changed, as expected");
@@ -164,12 +128,14 @@
}
# re-set to original values
$conf->data->set( platform_asm => $platform_asm_orig );
+$conf->data->set( platform => $platform_orig );
########## _handle_begin_c() ##########
{
my $tdir = tempdir( CLEANUP => 1 );
chdir $tdir or croak "Unable to change to temporary directory";
my $platform = 'darwin';
+ $conf->data->set( platform => $platform );
my $path = File::Spec->catdir( 'config', 'gen', 'platform', $platform );
mkpath( $path, { mode => 0755 } ) or croak "Unable to make testing directory";
More information about the parrot-commits
mailing list