[svn:parrot] r42432 - in branches/platform_determine_earlier: config/auto t/steps/auto

jkeenan at svn.parrot.org jkeenan at svn.parrot.org
Thu Nov 12 00:55:11 UTC 2009


Author: jkeenan
Date: Thu Nov 12 00:55:10 2009
New Revision: 42432
URL: https://trac.parrot.org/parrot/changeset/42432

Log:
Refactor _report_verbose() a bit.  Add tests.

Modified:
   branches/platform_determine_earlier/config/auto/arch.pm
   branches/platform_determine_earlier/t/steps/auto/arch-01.t

Modified: branches/platform_determine_earlier/config/auto/arch.pm
==============================================================================
--- branches/platform_determine_earlier/config/auto/arch.pm	Wed Nov 11 23:33:38 2009	(r42431)
+++ branches/platform_determine_earlier/config/auto/arch.pm	Thu Nov 12 00:55:10 2009	(r42432)
@@ -97,16 +97,15 @@
         osname   => $osname
     );
 
-    $conf->data->set( 'platform' => $self->_get_platform( $conf, $verbose ) );
+    $conf->data->set( 'platform' => $self->_get_platform( $conf ) );
 
-    _report_verbose( $conf, $verbose );
+    _report_verbose( $conf );
 
     return 1;
 }
 
 sub _get_platform {
-    my $self = shift;
-    my ($conf, $verbose) = @_;
+    my ($self, $conf) = @_;
     my $platform = lc ( $conf->data->get('osname') );
 
     $platform = "win32" if $platform =~ /^msys/;
@@ -123,7 +122,8 @@
 }
 
 sub _report_verbose {
-    my ($conf, $verbose) = @_;
+    my ($conf) = @_;
+    my $verbose = $conf->options->get( 'verbose' );
     if ( $verbose ) {
         print "osname:   ", $conf->data->get('osname'), "\n";
         print "cpuarch:  ", $conf->data->get('cpuarch'), "\n";

Modified: branches/platform_determine_earlier/t/steps/auto/arch-01.t
==============================================================================
--- branches/platform_determine_earlier/t/steps/auto/arch-01.t	Wed Nov 11 23:33:38 2009	(r42431)
+++ branches/platform_determine_earlier/t/steps/auto/arch-01.t	Thu Nov 12 00:55:10 2009	(r42432)
@@ -5,7 +5,7 @@
 
 use strict;
 use warnings;
-use Test::More tests => 102;
+use Test::More tests => 119;
 use Carp;
 use lib qw( lib t/configure/testlib );
 use_ok('config::init::defaults');
@@ -102,7 +102,7 @@
 my $pseudoarch = q{foobar};
 $conf->data->set('archname' => $pseudoarch);
 my $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{},
     "'cpuarch' was set as expected");
@@ -126,7 +126,7 @@
 my $pseudobyteorder = 1234;
 $conf->data->set('byteorder' => $pseudobyteorder);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{i386},
     "'cpuarch' was set as expected");
@@ -150,7 +150,7 @@
 $pseudobyteorder = 4321;
 $conf->data->set('byteorder' => $pseudobyteorder);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{ppc},
     "'cpuarch' was set as expected");
@@ -172,7 +172,7 @@
 $pseudoarch = q{MSWin32-x64};
 $conf->data->set('archname' => $pseudoarch);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{amd64},
     "'cpuarch' was set as expected");
@@ -194,7 +194,7 @@
 $pseudoarch = q{MSWin32-i386};
 $conf->data->set('archname' => $pseudoarch);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{i386},
     "'cpuarch' was set as expected");
@@ -216,7 +216,7 @@
 $pseudoarch = q{cygwin};
 $conf->data->set('archname' => $pseudoarch);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{i386},
     "'cpuarch' was set as expected");
@@ -238,7 +238,7 @@
 $pseudoarch = q{powerpc-linux};
 $conf->data->set('archname' => $pseudoarch);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{ppc},
     "'cpuarch' was set as expected");
@@ -260,53 +260,92 @@
 $pseudoarch = q{cygwin-i486};
 $conf->data->set('archname' => $pseudoarch);
 $ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
+ok( $ret, "runstep() returned true value: $pseudoarch" );
 is($step->result(), q{}, "Result was empty string as expected");
 is($conf->data->get('cpuarch'), q{i386},
     "'cpuarch' was set as expected");
 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");
-#}
-#
+########## mock solaris i86pc ##########
+
+($args, $step_list_ref) = process_options( {
+    argv => [ ],
+    mode => q{configure},
+} );
+rerun_defaults_for_testing($conf, $args );
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+$pseudoarch = q{i86pc-solaris};
+$conf->data->set('archname' => $pseudoarch);
+$ret = $step->runstep($conf);
+ok( $ret, "runstep() returned true value: $pseudoarch" );
+is($step->result(), q{}, "Result was empty string as expected");
+# Since on this architecture we call uname -p,
+# we cannot test 'cpuarch' easily
+#is($conf->data->get('cpuarch'), q{},
+#    "'cpuarch' was set as expected");
+is($conf->data->get('osname'), q{solaris},
+    "'osname' was set as expected");
+
+########## _get_platform() ##########
+
+my $exp;
+
+$conf->data->set( osname => 'msys' );
+$conf->data->set( archname => 'foo' );
+$exp = q{win32};
+is( $step->_get_platform( $conf ), $exp,
+    "Got expected platform for $exp");
+
+$conf->data->set( osname => 'mingw' );
+$conf->data->set( archname => 'foo' );
+$exp = q{win32};
+is( $step->_get_platform( $conf ), $exp,
+    "Got expected platform for $exp");
+
+$conf->data->set( osname => 'MSWin32' );
+$conf->data->set( archname => 'foo' );
+$exp = q{win32};
+is( $step->_get_platform( $conf ), $exp,
+    "Got expected platform for $exp");
+
 ## re-set to original values
-#$conf->data->set_p5( archname => $archname_orig );
-#$conf->data->set_p5( OSNAME => $platform_orig );
+#$conf->data->set( osname => $platform_orig );
+#$conf->data->set( archname => $archname_orig );
+
+$conf->data->set( archname => 'ia64-bar' );
+$exp = q{ia64};
+is( $step->_get_platform( $conf ), $exp,
+    "Got expected platform for $exp");
+
+$conf->data->set( archname => 'foo-bar' );
+$conf->data->set( osname => 'bar' );
+$exp = q{generic};
+is( $step->_get_platform( $conf ), $exp,
+    "Got expected platform for $exp");
+
+########## _report_verbose() ##########
+
+$conf->data->set( osname   => 'foo' );
+$conf->data->set( cpuarch  => 'bar' );
+$conf->data->set( platform => 'baz' );
+$conf->options->set( verbose => 1 );
+{
+    my ($stdout, $stderr);
+    capture(
+        sub { auto::arch::_report_verbose($conf); },
+        \$stdout,
+        \$stderr,
+    );
+    like( $stdout, qr/osname:\s+?foo/s,
+        "Got expected verbose output" );
+    like( $stdout, qr/cpuarch:\s+?bar/s,
+        "Got expected verbose output" );
+    like( $stdout, qr/platform:\s+?baz/s,
+        "Got expected verbose output" );
+}
 
 pass("Completed all tests in $0");
 


More information about the parrot-commits mailing list